帶您深入了解SQL數(shù)據(jù)庫角色
與SQL服務(wù)器角色一樣,SQL數(shù)據(jù)庫角色同樣非常重要,下面為您介紹的就是SQL數(shù)據(jù)庫角中的固定數(shù)據(jù)庫角色和用戶定義數(shù)據(jù)庫角色,希望對您學(xué)習(xí)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ù)庫角色。他們中的一些有預(yù)先定義好的專門的用途,這是不能使用常規(guī)的語句復(fù)制出來的(即是說,你無法創(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ù)庫(打賭你不會想到那樣一個角色?。?/p> |
db_denydatareader |
提供一種等同于在數(shù)據(jù)庫中所有表和視圖上DENY SELECT的效果 |
db_denydatawriter |
類似于db_denydatareader,只不過這里影響的是INSERT、UPDATE和DELETE語句 |
與使用固定服務(wù)器角色很類似,除非是在最大型的數(shù)據(jù)庫中,否則,你可能不會使用到所有這些角色。在這些固定數(shù)據(jù)庫角色中,一些是無法用你自己的數(shù)據(jù)庫角色來替換的,而另一些,只不過在處理那些似乎經(jīng)常出現(xiàn)的簡單粗糙的情形時非常便利而已。
2.用戶定義數(shù)據(jù)庫角色
實際上,可供使用的固定角色只是為了幫助你開始入手。安全性真正的中流砥柱是用戶定義數(shù)據(jù)庫角色的創(chuàng)建和分配。對于這些角色來說,由你來決定它們將包含什么許可權(quán)限。
使用用戶定義角色時,可以像針對單獨(dú)的用戶那樣,用完全相同的方式進(jìn)行GRANT、DENY和REVOKE。關(guān)于使用角色,好的事情是,用戶往往歸入訪問需要的范疇——通過使用角色,你能夠在一個地方做改動,并將改動散播給所有類似的用戶(至少被指派到那個角色的用戶)。
【編輯推薦】