用戶創建及授權

創建角色,用戶,權限

/*--示例說明
        示例在數據庫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'

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章