ИСПОЛЬЗОВАТЬ [master] GO --IF НЕ СУЩЕСТВУЕТ (ВЫБЕРИТЕ * ИЗ СИГЛОГИНОВ, где loginname = 'заменить на имя входа') --CREATE LOGIN [заменить на имя входа] FROM WINDOWS WITH DEFAULT_DATABASE = [master] --GO DECLARE@SQL VARCHAR (MAX) DECLARE @DatabaseName VARCHAR (255)
ОБЪЯВЛЯЕТ CURSET CURSOR FOR - ВЫБРАТЬ ИМЯ ИЗ SYSDATABASES ГДЕ имя в - ('master', 'model', 'tempdb', 'msdb', 'distribution')
ВЫБЕРИТЕ ИМЯ ИЗ SYS.DATABASES, ГДЕ нет имени ('master', 'model', 'tempdb', 'msdb', 'distribution')
OPEN crFetchFETCH NEXT FROM crFetch INTO @ DatabaseName
WHILE @@ FETCH_STATUS <> -1 BEGIN
SET @SQL =
'USE [' + @DatabaseName + ']' +'если не существует (выберите имя из sysusers, где name =' + '' '' + 'замените на имя пользователя' + '' '' + ')' + 'CREATE USER [замените имя пользователя] FOR LOGIN [замените имя пользователя Loginname] '+' EXEC sp_addrolemember N '+' '' '+' db_ETL '+' '' '+', N '+' '' '+' заменить на Имя для входа '+' '' '+' '
- 'EXEC sp_addrolemember N '+' '' '+' db_datareader '+' '' '+', N '+' '' '+' замените именем входа '+' '' '+ -, если не существует (выберите имя изsysusers где name = '+' '' '+' db_executor '+' '' '+' и issqlrole = 1) '+ -' create ROLE db_executor '+' '+ -' GRANT EXECUTE TO db_executor '+' '+ - 'EXEC sp_addrolemember N' + '' '' + 'db_executor' + '' '' + ', N' + '' '' + 'заменить на Имя для входа' + '' '' + '
- PRINT @ SQL
EXEC (@SQL)
ПОЛУЧИТЬ СЛЕДУЮЩИЙ ИЗ crFetch INTO @DatabaseName END
ЗАКРЫТЬ crFetch DEALLOCATE crFetch