/*--示例說明 示例在數據庫pubs中建立一個擁有表jobs的全部權限、擁有表titles的SELECT權限的角色r_test 隨後建立了一個登陸l_test,而後在數據庫pubs中爲登陸l_test建立了用戶帳戶u_test 同時將用戶帳戶u_test添加到角色r_test中,使其經過權限繼承獲取了與角色r_test同樣的權限 最後使用DENY語句拒絕了用戶帳戶u_test對錶titles的SELECT權限。 通過這樣的處理,使用l_test登陸SQL Server實例後,它只具備表jobs的全部權限。 --*/ USE pubs --建立角色 r_test EXEC sp_addrole 'r_test' --授予 r_test 對 jobs 表的全部權限 GRANT ALL ON jobs TO r_test --授予角色 r_test 對 titles 表的 SELECT 權限 GRANT SELECT ON titles TO r_test --添加登陸 l_test,設置密碼爲pwd,默認數據庫爲pubs EXEC sp_addlogin 'l_test','pwd','pubs' --爲登陸 l_test 在數據庫 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 權限 DENY SELECT ON titles TO u_test /*--完成上述步驟後,用 l_test 登陸,能夠對jobs表進行全部操做,但沒法對titles表查詢,雖然角色 r_test 有titles表的select權限,但已經在安全帳戶中明確拒絕了對titles的select權限,因此l_test無titles表的select權限--*/ --從數據庫 pubs 中刪除安全帳戶 EXEC sp_revokedbaccess 'u_test' --刪除登陸 l_test EXEC sp_droplogin 'l_test' --刪除角色 r_test EXEC sp_droprole 'r_test'