我試圖爲數據庫創建一個GRANT腳本。試圖創建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) 分
--The的人,我相信我需要
- USER_TABLE(U)
- INTERNAL_TABLE(IT)
- 查看(V)
- SQL_STORED_PROCEDURE(P)
- SQL_TABLE_VALUED_FUNCTION( TF)
- SQL_SCALAR_FUNCTION(FN)
在此先感謝!