[SQL]SQL授予權限

摘要:[SQL]SQL授予權限

今天想說把一資料庫建立備份地方,所以在另外的地方建立資料表,但想跑一個查詢就可以執行完授予權限,所以就參考了一些資料整理了以下的連結可以參考

如果要撈一些比較系統面的資料表可以參考這個

MSDN:INFORMATION_SCHEMA

 

TABLE_PRIVILEGES:針對授與目前資料庫中的目前使用者,或是被目前資料庫中的目前使用者所授與的每一個資料表權限,各傳回一個資料列

 

TABLES:針對目前資料庫中目前使用者具備權限的每份資料表,各傳回一個資料列。

 

COLUMNS:針對目前資料庫中目前使用者所能存取的每個資料行,各傳回一個資料列。

 

使用方法:

SELECT  * FROM test.INFORMATION_SCHEMA.Columns

 

接下來是授予使用者和拒絕使用者權限的方法

--授予 資料表 Transaction  Select 權限 給 test_admin
GRANT SELECT on  Test.dbo.Transaction TO test_admin
--拒絕 資料表 Transaction  Select 權限 給 test_admin
deny SELECT on  Test.dbo.Transaction TO test_admin

但如果發生找不到使用者時,代表資料庫一開始沒預設到使用者

可以執行這段語法來解決

CREATE USER test_admin;

最後就是把這些資料都串起來用迴圈來執行下面這段語法

execute('grant SELECT on '+@TableName+ ' TO '+ @User)