新聞中心
隨著公司業(yè)務(wù)的不斷擴(kuò)張,數(shù)據(jù)庫角色的設(shè)置變得越來越重要,它可以管理數(shù)據(jù)庫中不同的用戶和數(shù)據(jù)訪問權(quán)限。如果角色設(shè)置不當(dāng),那么就可能導(dǎo)致安全漏洞和數(shù)據(jù)丟失等問題。

因此,一份完善的數(shù)據(jù)庫角色設(shè)置方案是任何企業(yè)應(yīng)該考慮的關(guān)鍵問題之一。本文將介紹一些更佳實(shí)踐攻略,幫助您正確地設(shè)置數(shù)據(jù)庫角色,以確保數(shù)據(jù)的安全性、完整性和可靠性。
準(zhǔn)則 1:分配最少的權(quán)限
最小權(quán)限原則是設(shè)置數(shù)據(jù)庫角色的基本原則之一。實(shí)現(xiàn)這一原則的唯一方法是只為每個(gè)角色授予它所需要的更低級(jí)別的頁面訪問權(quán)限。
這是因?yàn)榕渲媒巧鄼?quán)限會(huì)增加不必要的風(fēng)險(xiǎn),若有人因?yàn)殄e(cuò)誤而獲得數(shù)據(jù)庫管理員角色,則他/她可以更改有關(guān)數(shù)據(jù)庫的任何項(xiàng)目,包括創(chuàng)建、刪除或更改表格、修改數(shù)據(jù)庫安全設(shè)置等。此外,它還可以訪問數(shù)據(jù)庫服務(wù)器上的所有文件,甚至是操作系統(tǒng)級(jí)別的文件。因此,要保護(hù)數(shù)據(jù)庫,需為每個(gè)角色分配最少的權(quán)限。
準(zhǔn)則 2:角色應(yīng)該指定單個(gè)用戶或用戶組
在創(chuàng)建角色時(shí),更好明確規(guī)定角色是針對(duì)單個(gè)用戶還是用戶組而創(chuàng)建的。通過這樣設(shè)置角色,可以確保在對(duì)數(shù)據(jù)庫的訪問方面保持全面的控制。如果您實(shí)施了這樣的設(shè)置,則您不必?fù)?dān)心未經(jīng)授權(quán)訪問數(shù)據(jù)庫的問題。
另外,如果您分配角色給一個(gè)用戶組,那么您可以通過簡單地從該用戶組中刪除某個(gè)用戶來減少數(shù)據(jù)庫的可訪問性。這對(duì)于正在處理組合記錄或關(guān)系的數(shù)據(jù)庫來說,是非常重要的。
準(zhǔn)則 3:分類數(shù)據(jù)訪問
對(duì)于特定類型的數(shù)據(jù)庫,例如金融服務(wù)、醫(yī)療保健等相關(guān)行業(yè),嚴(yán)格對(duì)數(shù)據(jù)訪問進(jìn)行分類極其重要。您可以根據(jù)數(shù)據(jù)的公開性、隱私級(jí)別等重要性因素,將數(shù)據(jù)庫用戶分配到不同的角色中。
更進(jìn)一步地說,可根據(jù)各用戶的職能說明、工作要求以及安全計(jì)劃來識(shí)別哪些用戶需要哪些訪問權(quán)限。通過限制數(shù)據(jù)的訪問權(quán)限和使用級(jí)別,將有助于防止非授權(quán)用戶訪問敏感數(shù)據(jù)。
準(zhǔn)則 4:授權(quán)特定的操作
設(shè)置角色的更佳實(shí)踐之一是授權(quán)特定的操作。例如,您可以將某個(gè)用戶角色分配為只能查看某些表的特定列,而不能進(jìn)行其他更改。
此外,您可以信任某些用戶組能夠執(zhí)行特定的數(shù)據(jù)庫操作,以及為個(gè)別用戶設(shè)置特定的任務(wù)或操作,前提是他們確實(shí)需要這些操作權(quán)限。此外,對(duì)于那些在較短時(shí)間內(nèi)不再需要某些權(quán)限的用戶,更好在任務(wù)完成后取消其權(quán)限。
準(zhǔn)則 5:分離業(yè)務(wù)數(shù)據(jù)和管理數(shù)據(jù)訪問
如果有人能夠擁有數(shù)據(jù)庫管理角色的操作權(quán)限,那么他們就可以控制所有用戶角色的訪問級(jí)別。這就使管理員成為了數(shù)據(jù)庫訪問權(quán)限的核心,因此,必須將業(yè)務(wù)數(shù)據(jù)訪問與管理數(shù)據(jù)訪問分離。
更好的方法是通過創(chuàng)建不同的角色和由單個(gè)用戶或組所擁有的權(quán)限來實(shí)現(xiàn)這一目標(biāo)。然后,您可以設(shè)置不同模塊之間的鏈接來保護(hù)應(yīng)用程序的完整性。
結(jié)論:
在數(shù)據(jù)庫的存儲(chǔ)和管理中,安全性和完整性仍是至關(guān)重要的。它對(duì)于組織和企業(yè)至關(guān)重要。正確地設(shè)置數(shù)據(jù)庫角色是實(shí)現(xiàn)這些目標(biāo)的必要條件。根據(jù)上述準(zhǔn)則,可以創(chuàng)建數(shù)據(jù)庫角色管理策略,保護(hù)敏感數(shù)據(jù),保護(hù)數(shù)據(jù)庫不受任何突發(fā)的非法訪問和數(shù)據(jù)丟失。
相關(guān)問題拓展閱讀:
- sql 數(shù)據(jù)庫中syadmin固定服務(wù)器怎么添加角色
sql 數(shù)據(jù)庫中syadmin固定服務(wù)器怎么添加角色
數(shù)據(jù)庫角色的成員可以分為如下幾類:
Windows用戶組或用戶賬戶
SQL Server登錄
其他角色
SQL Server的安吵缺全體系結(jié)構(gòu)中包括了幾個(gè)含有特定隱含權(quán)限的角色。除了數(shù)據(jù)庫擁有者創(chuàng)建的角色之外,還有兩類預(yù)定義的角色。這些可以創(chuàng)建的角色可以分為如下幾類:
固定服務(wù)器
固定數(shù)據(jù)庫
用戶自定義
固定服務(wù)器
由于固定服務(wù)器是在服務(wù)器層次上定義的,因此它們位于從屬于數(shù)據(jù)庫服務(wù)器的數(shù)據(jù)庫外面。下表列出了所有現(xiàn)有的固定服務(wù)器角色。
固定服務(wù)器角色
說 明
sysadmin
執(zhí)行SQL Server中的任何動(dòng)作
serveradmin
配置服務(wù)器設(shè)置
setupadmin
安裝復(fù)制和管理擴(kuò)展過程
securityadmin
管理登錄和CREATE DATABASE的權(quán)限以及閱讀審計(jì)
processadmin
管理SQL Server進(jìn)程
dbcreator
創(chuàng)建和修改數(shù)據(jù)庫
diskadmin
管理磁盤文件
下面兩個(gè)系統(tǒng)過程用來添加或刪除固定服務(wù)器角色成員:
sp_addsrvrolemember
sp_dropsrvrolemember
注意:您不能添加、修改或刪除固定服務(wù)器角色。另外,只有固定服務(wù)器角色的成員才能執(zhí)行上述兩個(gè)系統(tǒng)過程來從角色中添加或刪除登錄賬戶。
sa登錄
sa登錄是系統(tǒng)管理員的登錄。在以前的SQL Server版本中不存在角色,sa登錄具有仿寬所有可能的關(guān)于系統(tǒng)管理工作的權(quán)限。在SQL Server 2023中,sa登錄保持了向后兼容性升大辯。sa登錄永遠(yuǎn)是固定服務(wù)器角色syadmin中的成員,并且不能從該角色中刪除。
注意:只有當(dāng)沒有其他方法登錄到SQL Server系統(tǒng)中時(shí),再使用sa登錄。
固定服務(wù)器角色及其權(quán)限
在某個(gè)SQL Server系統(tǒng)中,每個(gè)固定服務(wù)器角色都有其隱含的權(quán)限。使用系統(tǒng)過程sp_srvrolepermission可以瀏覽每個(gè)固定服務(wù)器角色的權(quán)限。該系統(tǒng)過程的語法形式為:
sp_srvrolepermission ‘role’>
如果沒有指定role的值,那么所有的固定服務(wù)器角色的權(quán)限都將顯示出來。下面的部分將討論每個(gè)固定服務(wù)器角色的權(quán)限。
1. sysadmin
固定服務(wù)器角色sysadmin的成員被賦予了SQL Server系統(tǒng)中所有可能的權(quán)限。例如,只有這個(gè)角色中的成員(或一個(gè)被這個(gè)角色中的成員賦予了CREATE DATABASE權(quán)限的用戶)才能夠創(chuàng)建數(shù)據(jù)庫。
固定服務(wù)器角色和sa登錄之間有著特殊的關(guān)系。sa登錄一直都是固定服務(wù)器角色中的成員,并且不能從該角色中刪除。
2. serveradmin
固定服務(wù)器角色serveradmin的成員可以執(zhí)行如下的動(dòng)作:
向該服務(wù)器角色中添加其他登錄
運(yùn)行dbcc pintable命令(從而使表常駐于主內(nèi)存中)
運(yùn)行系統(tǒng)過程sp_configure(以顯示或更改系統(tǒng)選項(xiàng))
運(yùn)行reconfigure選項(xiàng)(以更新系統(tǒng)過程sp_configure所做的所有改動(dòng))
使用shutdown命令關(guān)掉數(shù)據(jù)庫服務(wù)器
運(yùn)行系統(tǒng)過程sp_tableoption為用戶自定義表設(shè)置選項(xiàng)的值
3. setupadmin
固定服務(wù)器角色setupadmin中的成員可以執(zhí)行如下的動(dòng)作:
向該服務(wù)器角色中添加其他登錄
添加、刪除或配置鏈接的服務(wù)器
執(zhí)行一些系統(tǒng)過程,如sp_serveroption
4. securityadmin
固定服務(wù)器角色securitypadmin中的成員可以執(zhí)行關(guān)于服務(wù)器訪問和安全的所有動(dòng)作。這些成員可以進(jìn)行如下的系統(tǒng)動(dòng)作:
向該服務(wù)器角色中添加其他登錄
讀取SQL Server的錯(cuò)誤日志
運(yùn)行如下的系統(tǒng)過程:如sp_addlinkedsrvlogin、sp_addlogin、sp_defaultdb、sp_defaultlanguage、sp_denylogin、sp_droplinkedsrvlogin、sp_droplogin、sp_grantlogin、sp_helplogins、sp_remoteoption和sp_revokelogin(所有這些系統(tǒng)過程都與
系統(tǒng)安全
相關(guān)。)
5. processadmin
固定服務(wù)器角色processadmin中的成員用來管理SQL Server進(jìn)程,如中止用戶正在運(yùn)行的查詢。這些成員可以進(jìn)行如下的動(dòng)作:
向該服務(wù)器角色中添加其他登錄
執(zhí)行KILL命令(以取消用戶進(jìn)程)
6. dbcreator
固定服務(wù)器角色dbcreator中的成員用來管理與數(shù)據(jù)庫創(chuàng)建和修改有關(guān)的所有動(dòng)作。這些成員可以進(jìn)行如下的動(dòng)作:
向該服務(wù)器角色中添加其他登錄
運(yùn)行CREATE DATABASE和ALTER DATABASE語句
使用系統(tǒng)過程sp_renamedb來修改數(shù)據(jù)庫的名稱
7. diskadmin
固定服務(wù)器角色diskadmin的成員可以進(jìn)行如下與用來存儲(chǔ)數(shù)據(jù)庫對(duì)象的文件和文件組有關(guān)的動(dòng)作:
向該服務(wù)器角色中添加其他登錄
運(yùn)行如下系統(tǒng)過程:sp_ddumpdevice和sp_dropdevice。
運(yùn)行DISK INIT語句
固定數(shù)據(jù)庫角色
固定數(shù)據(jù)庫角色在數(shù)據(jù)庫層上進(jìn)行定義,因此它們存在于屬于數(shù)據(jù)庫服務(wù)器的每個(gè)數(shù)據(jù)庫中。下表列出了所有的固定數(shù)據(jù)庫角色。
固定數(shù)據(jù)庫角色
說 明
db_owner
可以執(zhí)行數(shù)據(jù)庫中技術(shù)所有動(dòng)作的用戶
db_accessadmin
可以添加、刪除用戶的用戶
db_datareader
可以查看所有數(shù)據(jù)庫中用戶表內(nèi)數(shù)據(jù)的用戶
db_datawriter
可以添加、修改或刪除所有數(shù)據(jù)庫中用戶表內(nèi)數(shù)據(jù)的用戶
db_ddladmin
可以在數(shù)據(jù)庫中執(zhí)行所有DDL操作的用戶
db_securityadmin
可以管理數(shù)據(jù)庫中與安全權(quán)限有關(guān)所有動(dòng)作的用戶
db_backoperator
可以備份數(shù)據(jù)庫的用戶(并可以發(fā)布DBCC和CHECKPOINT語句,這兩個(gè)語句一般在備份前都會(huì)被執(zhí)行)
db_denydatareader
不能看到數(shù)據(jù)庫中任何數(shù)據(jù)的用戶
db_denydatawriter
不能改變數(shù)據(jù)庫中任何數(shù)據(jù)的用戶
除了上表中列出的固定數(shù)據(jù)庫角色之外,還有一種特殊的固定數(shù)據(jù)庫角色,名為public,這里將首先介紹這一角色。
public角色
public角色是一種特殊的固定數(shù)據(jù)庫角色,數(shù)據(jù)庫的每個(gè)合法用戶都屬于該角色。它為數(shù)據(jù)庫中的用戶提供了所有默認(rèn)權(quán)限。這樣就提供了一種機(jī)制,即給予那些沒有適當(dāng)權(quán)限的所有用戶以一定的(通常是有限的)權(quán)限。public角色為數(shù)據(jù)庫中的所有用戶都保留了默認(rèn)的權(quán)限,因此是不能被刪除的。
一般情況下,public角色允許用戶進(jìn)行如下的操作:
使用某些系統(tǒng)過程查看并顯示master數(shù)據(jù)庫中的信息
執(zhí)行一些不需要一些權(quán)限的語句(例如PRINT)
固定數(shù)據(jù)庫角色及其權(quán)限
在數(shù)據(jù)庫中,每個(gè)固定數(shù)據(jù)庫角色都有其特定的權(quán)限。這就意味著對(duì)于某個(gè)數(shù)據(jù)庫來說,固定數(shù)據(jù)庫角色的成員的權(quán)限是有限的。使用系統(tǒng)過程sp_dbfixedrolepermission就可以查看每個(gè)固定數(shù)據(jù)庫角色的權(quán)限。該系統(tǒng)過程的語法為:
sp_db.xedrolepermission ‘role’>
如果沒有指定role的值,那么所有固定數(shù)據(jù)庫角色的權(quán)限都可以顯示出來。下面的幾節(jié)將討論每個(gè)固定數(shù)據(jù)庫角色的權(quán)限。
1. db_owner
固定數(shù)據(jù)庫角色db_owner的成員可以在特定的數(shù)據(jù)庫中進(jìn)行如下的動(dòng)作:
向其他固定數(shù)據(jù)庫角色中添加成員,或從其中刪除成員
運(yùn)行所有的DDL語句
運(yùn)行BACKUP DATABASE和BACKUP LOG語句
使用CHECKPOINT語句顯式地啟動(dòng)檢查點(diǎn)進(jìn)程
運(yùn)行下列dbcc命令:dbcc checkalloc、dbcc checkcatalog、dbcc checkdb、dbcc updateusage
授予、取消或剝奪每一個(gè)數(shù)據(jù)庫對(duì)象上的下列權(quán)限:SELECT、INSERT、UPDATE、DELETE和REFERENCES
使用下列系統(tǒng)過程向數(shù)據(jù)庫中添加用戶或角色:sp_addapprole、sp_addrole、sp_addrolemember、sp_approlepassword、sp_changeobjectowner、sp_dropapprole、sp_droprole、sp_droprolemember、sp_dropuser、sp_grantdbaccess
使用系統(tǒng)過程sp_rename為任何數(shù)據(jù)庫對(duì)象重新命名
2. db_accessadmin
固定數(shù)據(jù)庫角色db_accessadmin的成員可以執(zhí)行與數(shù)據(jù)庫訪問有關(guān)的所有動(dòng)作。這些角色可以在具體的數(shù)據(jù)庫中執(zhí)行下列操作:
運(yùn)行下列系統(tǒng)過程:sp_addalias、sp_dropalias、sp_dropuser、sp_grantdbacess、sp_revokedbaccess
為Windows用戶賬戶、Windows組和SQL Server登錄添加或刪除訪問
3. dbdatareader
固定數(shù)據(jù)庫角色dbdatareader的成員對(duì)數(shù)據(jù)庫中的數(shù)據(jù)庫對(duì)象(表或視圖)具有SELECT權(quán)限。然而,這些成員不能把這個(gè)權(quán)限授予其他任何用戶或角色。(這個(gè)限制對(duì)REVOKE語句來說同樣成立。)
4. dbdatawriter
固定數(shù)據(jù)庫角色dbdatawriter的成員對(duì)數(shù)據(jù)庫中的數(shù)據(jù)庫對(duì)象(表或視圖)具有INSERT、UPDATE和DELETE權(quán)限。然而,這些成員不能把這個(gè)權(quán)限授予其他任何用戶或角色。(這個(gè)限制對(duì)REVOKE語句來說也同樣成立。)
5. db_ddladmin
固定數(shù)據(jù)庫角色db_ddladmin的成員可以進(jìn)行如下的動(dòng)作:
運(yùn)行所有DDL語句
對(duì)任何表上授予REFERENCESE權(quán)限
使用系統(tǒng)過程sp_procoption和sp_recompile來修改任何存儲(chǔ)過程的結(jié)構(gòu)
使用系統(tǒng)過程sp_rename為任何數(shù)據(jù)庫對(duì)象重命名
使用系統(tǒng)過程sp_tableoption和sp_changeobjectowner分別修改表的選項(xiàng)和任何數(shù)據(jù)庫對(duì)象的擁有者
6. db_securityadmin
固定數(shù)據(jù)庫角色db_securityadmin的成員可以管理數(shù)據(jù)庫中的安全。這些成員可以進(jìn)行如下的動(dòng)作:
運(yùn)行與安全有關(guān)的所有Transact-SQL語句(GRANT、DENY和REVOKE)
運(yùn)行以下系統(tǒng)過程:sp_addapprole、sp_addrole、sp_addrolemember、sp_approlepassword、sp_changeobjectowner、sp_dropapprole、sp_droprole、sp_droprolemember
7. db_backupoperator
固定數(shù)據(jù)庫角色db_backupoperator的成員可以管理數(shù)據(jù)庫備份的過程。這些成員可以進(jìn)行如下動(dòng)作:
運(yùn)行BACKUP DATABASE和BACKUP LOG語句
用CHECKPOINT語句顯式地啟動(dòng)檢查點(diǎn)進(jìn)程
運(yùn)行如下dbcc命令:dbcc checkalloc、dbcc checkcatalog、dbcc checkdb、dbcc updateusage
8. db_denydatareader和db_denydatawriter
顧名思義,固定數(shù)據(jù)庫角色db_denydatareader的成員對(duì)數(shù)據(jù)庫中的數(shù)據(jù)庫對(duì)象(表或視圖)沒有SELECT權(quán)限。如果數(shù)據(jù)庫中含有敏感數(shù)據(jù)并且其他用戶不能讀取這些數(shù)據(jù),那么就可以使用這個(gè)角色。
數(shù)據(jù)庫角色如何設(shè)置的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于數(shù)據(jù)庫角色如何設(shè)置,設(shè)置數(shù)據(jù)庫角色:更佳實(shí)踐攻略,sql 數(shù)據(jù)庫中syadmin固定服務(wù)器怎么添加角色的信息別忘了在本站進(jìn)行查找喔。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
本文名稱:設(shè)置數(shù)據(jù)庫角色:更佳實(shí)踐攻略(數(shù)據(jù)庫角色如何設(shè)置)
網(wǎng)站鏈接:http://www.dlmjj.cn/article/dpehocg.html


咨詢
建站咨詢
