Я пытаюсь создать скрипт GRANT для БД.
БД не может использовать встроенные роли, поэтому мне нужно заново создать db_reader, db_writer и EXEC для хранимых процедур в сценарии GRANT, назначенном этой учетной записи службы.
Я пытаюсь автоматизировать это, вместо того, чтобы просматривать каждый элемент в БД и создавать его вручную.
Пока у меня есть это:
/* USER_TABLE */
select 'GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.' + name + ' TO [DOMAIN\user]' from sys.objects where type = 'U' order by name;
/* INTERNAL_TABLE */
select 'GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.' + name + ' TO [DOMAIN\user]' from sys.objects where type = 'IT' order by name;
/* VIEW */
select 'GRANT SELECT ON dbo.' + name + ' TO [DOMAIN\user]' from sys.objects where type = 'V' order by name;
/* SQL_STORED_PROCEDURE */
select 'GRANT EXECUTE ON dbo.' + name + ' TO [DOMAIN\user]' from sys.objects where type = 'P' order by name;
/* SQL_TABLE_VALUED_FUNCTION */
select 'GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.' + name + ' TO [DOMAIN\user]' from sys.objects where type = 'TF' order by name;
/* SQL_SCALAR_FUNCTION */
select 'GRANT EXECUTE ON dbo.' + name + ' TO [DOMAIN\user]' from sys.objects where type = 'FN' order by name;
Но я не уверен, какие права нужны всем остальным элементам, например: SERVICE_QUEUE, SQL_TRIGGER и т. Д. (См. Ниже) Кроме того, если вышеприведенное верно.
select DISTINCT(type_desc), type as a from sys.objects WHERE type <> 'S';
- те, кому я не верю, что мне нужно
- DEFAULT_CONSTRAINT (D)
- FOREIGN_KEY_CONSTRAINT (F)
- PRIMARY_KEY_CONSTRAINT (PK)
- SERVICE_QUEUE (SQ)
- UNIQUE_CONSTRAINT (UQ)
- SQL_TRIGGER (TR)
- Те, кому я верю, мне нужны
- USER_TABLE (U)
- INTERNAL_TABLE (IT)
- VIEW (V)
- SQL_STORED_PROCEDURE (P)
- SQL_TABLE_VALUED_FUNCTION (TF)
- SQL_SCALAR_FUNCTION (FN)
Заранее спасибо!