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