帶您深入了解SQL數據庫角色
與SQL服務器角色一樣,SQL數據庫角色同樣非常重要,下面為您介紹的就是SQL數據庫角中的固定數據庫角色和用戶定義數據庫角色,希望對您學習SQL數據庫有所幫助。
數據庫角色限制在單個數據庫的范圍之內——用戶屬于一個數據庫中的db_datareader角色并不意味著他屬于另一個數據庫中的那個角色。數據庫角色分為兩個子類:固定數據庫角色和用戶定義數據庫角色。
1.固定SQL數據庫角色
就如同存在若干個固定服務器角色一樣,這里也有許多的固定數據庫角色。他們中的一些有預先定義好的專門的用途,這是不能使用常規的語句復制出來的(即是說,你無法創建擁有同樣功能的用戶定義數據庫角色)。然而,大多數角色的存在是為了處理更一般的情形,并讓你做起事情來更加容易。
角 色 |
特 性 |
db_owner |
該角色表現得就好像它是所有其他數據庫角色中的成員一樣。使用這一角色能夠造就這樣的情形:多個用戶可以完成相同的功能和任務,就好像他們是數據庫的所有者一樣 |
db_accessadmin |
實現類似于securityadmin服務器角色所實現功能的一部分,只不過這一角色僅局限于指派它并創建用戶的單個數據庫中(不是單個的權限)。它不能創建新的SQL Server登錄賬戶,但是,該角色中的成員能夠把Windows用戶和組以及現有的SQL Server登錄賬戶加入到數據庫中 |
db_datareader |
能夠在數據庫中所有的用戶表上執行SELECT語句 |
db_datawriter |
能夠在數據庫中所有的用戶表上執行INSERT、UPDATE和DELETE語句 |
db_ddladmin |
能夠在數據庫中添加、修改或刪除對象 |
db_securityadmin |
securityadmin服務器角色的數據庫級別的等價物。這一數據庫角色不能在數據庫中創建新的用戶,但是,能夠管理角色和數據庫角色的成員,并能在數據庫中管理語句和對象的許可權限 |
db_backupoperator |
備份數據庫(打賭你不會想到那樣一個角色!) |
db_denydatareader |
提供一種等同于在數據庫中所有表和視圖上DENY SELECT的效果 |
db_denydatawriter |
類似于db_denydatareader,只不過這里影響的是INSERT、UPDATE和DELETE語句 |
與使用固定服務器角色很類似,除非是在最大型的數據庫中,否則,你可能不會使用到所有這些角色。在這些固定數據庫角色中,一些是無法用你自己的數據庫角色來替換的,而另一些,只不過在處理那些似乎經常出現的簡單粗糙的情形時非常便利而已。
2.用戶定義數據庫角色
實際上,可供使用的固定角色只是為了幫助你開始入手。安全性真正的中流砥柱是用戶定義數據庫角色的創建和分配。對于這些角色來說,由你來決定它們將包含什么許可權限。
使用用戶定義角色時,可以像針對單獨的用戶那樣,用完全相同的方式進行GRANT、DENY和REVOKE。關于使用角色,好的事情是,用戶往往歸入訪問需要的范疇——通過使用角色,你能夠在一個地方做改動,并將改動散播給所有類似的用戶(至少被指派到那個角色的用戶)。
【編輯推薦】