sync
This commit is contained in:
154
DEV - script grants and roles for all logins in a db.sql
Normal file
154
DEV - script grants and roles for all logins in a db.sql
Normal file
@@ -0,0 +1,154 @@
|
|||||||
|
USE [master]
|
||||||
|
/* declare variables */
|
||||||
|
DECLARE @db VARCHAR(100)
|
||||||
|
IF OBJECT_ID('tempdb..#txt')IS NOT NULL BEGIN;
|
||||||
|
DROP TABLE #txt;
|
||||||
|
END;
|
||||||
|
|
||||||
|
CREATE TABLE #txt(
|
||||||
|
id INT NOT NULL IDENTITY
|
||||||
|
,db VARCHAR(100) NOT NULL
|
||||||
|
,msg NVARCHAR(MAX) NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
DECLARE csr_db CURSOR FAST_FORWARD READ_ONLY FOR
|
||||||
|
SELECT d.name
|
||||||
|
FROM sys.databases d
|
||||||
|
WHERE d.[database_id]>4
|
||||||
|
AND d.[is_read_only] = 0
|
||||||
|
AND d.[state]=0
|
||||||
|
|
||||||
|
OPEN csr_db
|
||||||
|
|
||||||
|
FETCH NEXT FROM csr_db INTO @db
|
||||||
|
|
||||||
|
WHILE @@FETCH_STATUS = 0
|
||||||
|
BEGIN
|
||||||
|
EXEC('
|
||||||
|
use '+@db+';
|
||||||
|
|
||||||
|
-- Script to generate user creation and role membership
|
||||||
|
DECLARE @UserScripts NVARCHAR(MAX) = '''';
|
||||||
|
DECLARE @RoleScripts NVARCHAR(MAX) = '''';
|
||||||
|
DECLARE @login NVARCHAR(MAX) = ''medicalData-importer-int'';
|
||||||
|
--SET @login=null;
|
||||||
|
|
||||||
|
-- Generate user creation scripts
|
||||||
|
SELECT @UserScripts = @UserScripts + ''CREATE USER ['' + dp.name + ''] FOR LOGIN ['' + dp.name + ''];'' + CHAR(13) + CHAR(10)
|
||||||
|
FROM sys.database_principals dp
|
||||||
|
WHERE dp.type IN (''S'', ''U'', ''G'')
|
||||||
|
AND dp.name NOT IN (''dbo'', ''guest'', ''INFORMATION_SCHEMA'', ''sys'')
|
||||||
|
AND dp.name = COALESCE(@login, dp.[name]);
|
||||||
|
|
||||||
|
-- Generate role membership scripts
|
||||||
|
SELECT @RoleScripts = @RoleScripts + ''ALTER ROLE ['' + dr.name + ''] ADD MEMBER ['' + dp.name + ''];'' + CHAR(13) + CHAR(10)
|
||||||
|
FROM sys.database_principals dp
|
||||||
|
JOIN sys.database_role_members drm ON dp.principal_id = drm.member_principal_id
|
||||||
|
JOIN sys.database_principals dr ON drm.role_principal_id = dr.principal_id
|
||||||
|
WHERE dp.type IN (''S'', ''U'', ''G'')
|
||||||
|
AND dp.name NOT IN (''dbo'', ''guest'', ''INFORMATION_SCHEMA'', ''sys'')
|
||||||
|
AND dp.name = COALESCE(@login, dp.[name]);
|
||||||
|
|
||||||
|
-- Print user creation and role membership scripts
|
||||||
|
PRINT @UserScripts;
|
||||||
|
insert into #txt(db,msg)
|
||||||
|
select '''+@db+''',@UserScripts
|
||||||
|
where nullif(@UserScripts,'''') is not null;
|
||||||
|
|
||||||
|
PRINT @RoleScripts;
|
||||||
|
insert into #txt(db,msg)
|
||||||
|
select '''+@db+''',@RoleScripts
|
||||||
|
where nullif(@RoleScripts,'''') is not null;
|
||||||
|
|
||||||
|
-- Script to generate permissions
|
||||||
|
DECLARE @PermissionScripts NVARCHAR(MAX) = '''';
|
||||||
|
|
||||||
|
SELECT @PermissionScripts = @PermissionScripts +
|
||||||
|
CASE
|
||||||
|
WHEN p.state_desc = ''GRANT'' THEN ''GRANT ''
|
||||||
|
WHEN p.state_desc = ''DENY'' THEN ''DENY ''
|
||||||
|
WHEN p.state_desc = ''REVOKE'' THEN ''REVOKE ''
|
||||||
|
END + p.permission_name +
|
||||||
|
CASE
|
||||||
|
WHEN p.class_desc = ''OBJECT_OR_COLUMN'' THEN '' ON ['' + OBJECT_NAME(p.major_id) + '']''
|
||||||
|
WHEN p.class_desc = ''DATABASE'' THEN '' ON DATABASE::['' + DB_NAME() + '']''
|
||||||
|
WHEN p.class_desc = ''SCHEMA'' THEN '' ON SCHEMA::['' + SCHEMA_NAME(p.major_id) + '']''
|
||||||
|
WHEN p.class_desc = ''TYPE'' THEN '' ON TYPE::['' + TYPE_NAME(p.major_id) + '']''
|
||||||
|
ELSE ''''
|
||||||
|
END + '' TO ['' + dp.name + ''];'' + CHAR(13) + CHAR(10)
|
||||||
|
FROM sys.database_permissions p
|
||||||
|
JOIN sys.database_principals dp ON p.grantee_principal_id = dp.principal_id
|
||||||
|
WHERE dp.type IN (''S'', ''U'', ''G'')
|
||||||
|
AND dp.name NOT IN (''dbo'', ''guest'', ''INFORMATION_SCHEMA'', ''sys'')
|
||||||
|
AND dp.name = COALESCE(@login, dp.[name]);
|
||||||
|
|
||||||
|
-- Print permissions scripts
|
||||||
|
PRINT @PermissionScripts;
|
||||||
|
insert into #txt(db,msg)
|
||||||
|
select '''+@db+''',@PermissionScripts
|
||||||
|
where nullif(@PermissionScripts,'''') is not null;
|
||||||
|
');
|
||||||
|
|
||||||
|
FETCH NEXT FROM csr_db INTO @db
|
||||||
|
END
|
||||||
|
|
||||||
|
CLOSE csr_db
|
||||||
|
DEALLOCATE csr_db
|
||||||
|
|
||||||
|
SELECT *
|
||||||
|
FROM [#txt]
|
||||||
|
|
||||||
|
RETURN
|
||||||
|
|
||||||
|
|
||||||
|
--USE dba
|
||||||
|
|
||||||
|
-- Script to generate user creation and role membership
|
||||||
|
DECLARE @UserScripts NVARCHAR(MAX) = '';
|
||||||
|
DECLARE @RoleScripts NVARCHAR(MAX) = '';
|
||||||
|
DECLARE @login NVARCHAR(MAX) = 'medicalData-importer-dev';
|
||||||
|
|
||||||
|
-- Generate user creation scripts
|
||||||
|
SELECT @UserScripts = @UserScripts + 'CREATE USER [' + dp.name + '] FOR LOGIN [' + dp.name + '];' + CHAR(13) + CHAR(10)
|
||||||
|
FROM sys.database_principals dp
|
||||||
|
WHERE dp.type IN ('S', 'U', 'G')
|
||||||
|
AND dp.name NOT IN ('dbo', 'guest', 'INFORMATION_SCHEMA', 'sys')
|
||||||
|
AND dp.name = COALESCE(@login, dp.[name]);
|
||||||
|
|
||||||
|
-- Generate role membership scripts
|
||||||
|
SELECT @RoleScripts = @RoleScripts + 'ALTER ROLE [' + dr.name + '] ADD MEMBER [' + dp.name + '];' + CHAR(13) + CHAR(10)
|
||||||
|
FROM sys.database_principals dp
|
||||||
|
JOIN sys.database_role_members drm ON dp.principal_id = drm.member_principal_id
|
||||||
|
JOIN sys.database_principals dr ON drm.role_principal_id = dr.principal_id
|
||||||
|
WHERE dp.type IN ('S', 'U', 'G')
|
||||||
|
AND dp.name NOT IN ('dbo', 'guest', 'INFORMATION_SCHEMA', 'sys')
|
||||||
|
AND dp.name = COALESCE(@login, dp.[name]);
|
||||||
|
|
||||||
|
-- Print user creation and role membership scripts
|
||||||
|
PRINT @UserScripts;
|
||||||
|
PRINT @RoleScripts;
|
||||||
|
|
||||||
|
-- Script to generate permissions
|
||||||
|
DECLARE @PermissionScripts NVARCHAR(MAX) = '';
|
||||||
|
|
||||||
|
SELECT @PermissionScripts = @PermissionScripts +
|
||||||
|
CASE
|
||||||
|
WHEN p.state_desc = 'GRANT' THEN 'GRANT '
|
||||||
|
WHEN p.state_desc = 'DENY' THEN 'DENY '
|
||||||
|
WHEN p.state_desc = 'REVOKE' THEN 'REVOKE '
|
||||||
|
END + p.permission_name +
|
||||||
|
CASE
|
||||||
|
WHEN p.class_desc = 'OBJECT_OR_COLUMN' THEN ' ON [' + OBJECT_NAME(p.major_id) + ']'
|
||||||
|
WHEN p.class_desc = 'DATABASE' THEN ' ON DATABASE::[' + DB_NAME() + ']'
|
||||||
|
WHEN p.class_desc = 'SCHEMA' THEN ' ON SCHEMA::[' + SCHEMA_NAME(p.major_id) + ']'
|
||||||
|
WHEN p.class_desc = 'TYPE' THEN ' ON TYPE::[' + TYPE_NAME(p.major_id) + ']'
|
||||||
|
ELSE ''
|
||||||
|
END + ' TO [' + dp.name + '];' + CHAR(13) + CHAR(10)
|
||||||
|
FROM sys.database_permissions p
|
||||||
|
JOIN sys.database_principals dp ON p.grantee_principal_id = dp.principal_id
|
||||||
|
WHERE dp.type IN ('S', 'U', 'G')
|
||||||
|
AND dp.name NOT IN ('dbo', 'guest', 'INFORMATION_SCHEMA', 'sys')
|
||||||
|
AND dp.name = COALESCE(@login, dp.[name]);
|
||||||
|
|
||||||
|
-- Print permissions scripts
|
||||||
|
PRINT @PermissionScripts;
|
||||||
27
EXPLOIT - start job if not already running.sql
Normal file
27
EXPLOIT - start job if not already running.sql
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
DECLARE @job NVARCHAR(MAX)='DR00510 - TriaFin subscription agent';
|
||||||
|
|
||||||
|
IF NOT EXISTS(
|
||||||
|
SELECT [j].[name] AS [job_name],
|
||||||
|
[j].[job_id],
|
||||||
|
[a].[run_requested_date],
|
||||||
|
[a].[next_scheduled_run_date],
|
||||||
|
[a].[start_execution_date],
|
||||||
|
[a].[stop_execution_date]
|
||||||
|
FROM [msdb].[dbo].[sysjobs] [j]
|
||||||
|
JOIN (
|
||||||
|
SELECT MAX([session_id]) AS [session_id],
|
||||||
|
[job_id]
|
||||||
|
FROM [msdb].[dbo].[sysjobactivity] [ia]
|
||||||
|
GROUP BY [job_id]
|
||||||
|
) [sess] ON [sess].[job_id] = [j].[job_id]
|
||||||
|
JOIN [msdb].[dbo].[sysjobactivity] [a] ON [a].[job_id] = [j].[job_id] AND [sess].[session_id] = [a].[session_id]
|
||||||
|
|
||||||
|
WHERE [j].[name] = @job
|
||||||
|
AND [start_execution_date] IS NOT NULL
|
||||||
|
AND [stop_execution_date] IS NULL
|
||||||
|
)
|
||||||
|
AND EXISTS(SELECT 1 FROM msdb.dbo.[sysjobs] WHERE name=@job)
|
||||||
|
BEGIN
|
||||||
|
EXEC [msdb].[dbo].[sp_start_job] @job_name = @job
|
||||||
|
PRINT 'started job '+@job
|
||||||
|
END
|
||||||
46
HCI - add dev permissions to a specific AD group.sql
Normal file
46
HCI - add dev permissions to a specific AD group.sql
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
/*
|
||||||
|
12.03.2025, TSC
|
||||||
|
*/
|
||||||
|
BEGIN TRANSACTION
|
||||||
|
SET XACT_ABORT ON;
|
||||||
|
SET NOCOUNT ON;
|
||||||
|
|
||||||
|
DECLARE @loginName NVARCHAR(128) = 'centralinfra\L-CI-AP-SQL-PROD_MED_Team';
|
||||||
|
DECLARE @sql NVARCHAR(MAX)='';
|
||||||
|
|
||||||
|
-- Cursor to iterate through all user databases
|
||||||
|
DECLARE db_cursor CURSOR LOCAL READ_ONLY FORWARD_ONLY FOR
|
||||||
|
SELECT d.name
|
||||||
|
FROM sys.databases d
|
||||||
|
WHERE d.database_id > 4 -- Exclude system databases
|
||||||
|
AND d.[source_database_id] IS NULL --not a snapshot
|
||||||
|
AND d.[state_desc]='online'
|
||||||
|
AND [d].[is_read_only]=0
|
||||||
|
|
||||||
|
OPEN db_cursor;
|
||||||
|
FETCH NEXT FROM db_cursor INTO @sql;
|
||||||
|
|
||||||
|
WHILE @@FETCH_STATUS = 0
|
||||||
|
BEGIN
|
||||||
|
SET @sql = 'USE [' + @sql + ']; '+CHAR(13)+CHAR(10) +
|
||||||
|
'IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE name = ''' + @loginName + ''') '+CHAR(13)+CHAR(10) +
|
||||||
|
'BEGIN '+CHAR(13)+CHAR(10) +
|
||||||
|
' CREATE USER [' + @loginName + '] FOR LOGIN [' + @loginName + ']; '+CHAR(13)+CHAR(10) +
|
||||||
|
'END '+CHAR(13)+CHAR(10) +
|
||||||
|
'ALTER USER [' + @loginName + '] WITH DEFAULT_SCHEMA = dbo; '+CHAR(13)+CHAR(10) +
|
||||||
|
'EXEC sp_addrolemember ''db_ddladmin'', ''' + @loginName + '''; '+CHAR(13)+CHAR(10) +
|
||||||
|
'EXEC sp_addrolemember ''db_datareader'', ''' + @loginName + '''; '+CHAR(13)+CHAR(10) +
|
||||||
|
'EXEC sp_addrolemember ''db_datawriter'', ''' + @loginName + ''';'+CHAR(13)+CHAR(10)+
|
||||||
|
'GRANT EXECUTE TO [' + @loginName + '];'+CHAR(13)+CHAR(10)+
|
||||||
|
'------------------------------------'+CHAR(13)+CHAR(10);
|
||||||
|
|
||||||
|
EXEC sp_executesql @sql;
|
||||||
|
PRINT @sql;
|
||||||
|
FETCH NEXT FROM db_cursor INTO @sql;
|
||||||
|
END
|
||||||
|
|
||||||
|
CLOSE db_cursor;
|
||||||
|
DEALLOCATE db_cursor;
|
||||||
|
|
||||||
|
--ROLLBACK TRANSACTION
|
||||||
|
COMMIT TRANSACTION
|
||||||
35
SYMDS - check initial load.sql
Normal file
35
SYMDS - check initial load.sql
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
USE [dba_reporting]
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
[batch_id]
|
||||||
|
,[node_id]
|
||||||
|
,[channel_id]
|
||||||
|
,[status]
|
||||||
|
,[error_flag]
|
||||||
|
,[create_time]
|
||||||
|
,[summary]
|
||||||
|
,[byte_count]/1024.0/1024.0 AS MByte_count
|
||||||
|
,[extract_row_count]
|
||||||
|
--,[extract_millis]
|
||||||
|
,RIGHT('0' + CAST([extract_millis] / 3600000 AS VARCHAR), 2) + ':' +RIGHT('0' + CAST(([extract_millis] % 3600000) / 60000 AS VARCHAR), 2) + ':' +RIGHT('0' + CAST(([extract_millis] % 60000) / 1000 AS VARCHAR), 2) AS [extract_human]
|
||||||
|
--,[load_millis]
|
||||||
|
,RIGHT('0' + CAST([load_millis] / 3600000 AS VARCHAR), 2) + ':' +RIGHT('0' + CAST(([load_millis] % 3600000) / 60000 AS VARCHAR), 2) + ':' +RIGHT('0' + CAST(([load_millis] % 60000) / 1000 AS VARCHAR), 2) AS [load_human]
|
||||||
|
,[extract_start_time]
|
||||||
|
,[transfer_start_time]
|
||||||
|
,[load_start_time]
|
||||||
|
FROM [dbo].[sym_outgoing_batch]
|
||||||
|
WHERE [channel_id]='reload'
|
||||||
|
AND [node_id]='bag'
|
||||||
|
AND [status]<>'OK'
|
||||||
|
|
||||||
|
RETURN
|
||||||
|
|
||||||
|
SELECT *
|
||||||
|
--UPDATE s SET [s].[source_catalog_name]='sl2007'
|
||||||
|
FROM [dbo].[sym_trigger] s
|
||||||
|
WHERE [channel_id]='sl2007_push'
|
||||||
|
|
||||||
|
|
||||||
|
UPDATE [dbo].[sym_outgoing_batch]
|
||||||
|
SET [status]='IG'
|
||||||
|
WHERE [batch_id]=305
|
||||||
26
SYMDS - sandbox.sql
Normal file
26
SYMDS - sandbox.sql
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
USE [dba_reporting]
|
||||||
|
|
||||||
|
SELECT *
|
||||||
|
--UPDATE c SET [c].[data_loader_type]='bulk'
|
||||||
|
FROM sym_channel c
|
||||||
|
WHERE [channel_id]='reload'
|
||||||
|
|
||||||
|
RETURN
|
||||||
|
|
||||||
|
SELECT *
|
||||||
|
--UPDATE x SET [x].[status]='IG'
|
||||||
|
FROM [dbo].[sym_outgoing_batch] x
|
||||||
|
WHERE [x].[channel_id]='reload'
|
||||||
|
AND [x].[node_id]='BAG'
|
||||||
|
|
||||||
|
RETURN
|
||||||
|
|
||||||
|
insert into dbo.SYM_TABLE_RELOAD_REQUEST (target_node_id, source_node_id, trigger_id, router_id, create_time, last_update_time)
|
||||||
|
values ('BAG', 'proddb', 'push_PACK_NEW', 'onprem to cloud', current_timestamp, current_timestamp);
|
||||||
|
|
||||||
|
|
||||||
|
update sym_channel
|
||||||
|
SET data_loader_type='bulk'
|
||||||
|
, max_batch_size=1000
|
||||||
|
, [max_batch_to_send] = 10
|
||||||
|
WHERE channel_id='reload'
|
||||||
Reference in New Issue
Block a user