?? 13.2.3 登錄、用戶及角色管理示例.sql
字號:
/*--示例說明
示例在數(shù)據(jù)庫pubs中創(chuàng)建一個擁有表jobs的所有權(quán)限、擁有表titles的SELECT權(quán)限的角色r_test
隨后創(chuàng)建了一個登錄l_test,然后在數(shù)據(jù)庫pubs中為登錄l_test創(chuàng)建了用戶賬戶u_test
同時將用戶賬戶u_test添加到角色r_test中,使其通過權(quán)限繼承獲取了與角色r_test一樣的權(quán)限
最后使用DENY語句拒絕了用戶賬戶u_test對表titles的SELECT權(quán)限。
經(jīng)過這樣的處理,使用l_test登錄SQL Server實例后,它只具有表jobs的所有權(quán)限。
--*/
USE pubs
--創(chuàng)建角色 r_test
EXEC sp_addrole 'r_test'
--授予 r_test 對 jobs 表的所有權(quán)限
GRANT ALL ON jobs TO r_test
--授予角色 r_test 對 titles 表的 SELECT 權(quán)限
GRANT SELECT ON titles TO r_test
--添加登錄 l_test,設(shè)置密碼為pwd,默認(rèn)數(shù)據(jù)庫為pubs
EXEC sp_addlogin 'l_test','pwd','pubs'
--為登錄 l_test 在數(shù)據(jù)庫 pubs 中添加安全賬戶 u_test
EXEC sp_grantdbaccess 'l_test','u_test'
--添加 u_test 為角色 r_test 的成員
EXEC sp_addrolemember 'r_test','u_test'
--拒絕安全賬戶 u_test 對 titles 表的 SELECT 權(quán)限
DENY SELECT ON titles TO u_test
/*--完成上述步驟后,用 l_test 登錄,可以對jobs表進(jìn)行所有操作,但無法對titles表查詢,雖然角色 r_test 有titles表的select權(quán)限,但已經(jīng)在安全賬戶中明確拒絕了對titles的select權(quán)限,所以l_test無titles表的select權(quán)限--*/
--從數(shù)據(jù)庫 pubs 中刪除安全賬戶
EXEC sp_revokedbaccess 'u_test'
--刪除登錄 l_test
EXEC sp_droplogin 'l_test'
--刪除角色 r_test
EXEC sp_droprole 'r_test'
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -