如何給指定數(shù)據(jù)庫創(chuàng)建只讀用戶?
在SQL Server 中,為了保護(hù)數(shù)據(jù)庫的安全,需要給不同的使用者開通不同的訪問用戶,那么如何簡(jiǎn)單的控制用戶的權(quán)限呢?下面我們就創(chuàng)建一個(gè)只讀用戶,給大家學(xué)習(xí)使用。
創(chuàng)建訪問指定數(shù)據(jù)庫的只讀用戶
1、首先打開【Microsoft SQLServer Management Studio】,用管理員賬戶登錄。這里我選的服務(wù)器是【local】,賬戶是【windows身份驗(yàn)證】,如果是連接遠(yuǎn)程的服務(wù)器,輸入遠(yuǎn)程服務(wù)器地址和賬號(hào)密碼即可。
圖片
2、找到【安全性】,打開,可以看到【登錄名】,在上面右鍵。
圖片
3、選擇【新建登錄名】
圖片
4、在【常規(guī)】選項(xiàng)中,輸入登錄名,選擇身份驗(yàn)證方式。這里我選用了【SQL Server 身份驗(yàn)證】同時(shí),我勾掉了【強(qiáng)制實(shí)施密碼策略】
圖片
5、在右側(cè)的【用戶映射】選項(xiàng)卡中,【映射到此登錄名的用戶】選擇該用戶可以操作的數(shù)據(jù)庫。針對(duì)每一個(gè)數(shù)據(jù)庫,在下方【數(shù)據(jù)庫角色成員身份】中,選擇【db_datareader】,同時(shí)默認(rèn)架構(gòu)中也選擇【db_datareader】
圖片
6、這樣,一個(gè)只讀用戶就建立好了,用此用戶登錄時(shí),就只能對(duì)映射的數(shù)據(jù)庫進(jìn)行只讀訪問了。
添加只讀用戶查看存儲(chǔ)過程權(quán)限
而當(dāng)我們?cè)O(shè)置只給某些用戶授權(quán)只讀權(quán)限時(shí)(即public),這些用戶可能需要查看sql的存儲(chǔ)過程;因此需要授權(quán)給它。
第一步:使用sa用戶進(jìn)入數(shù)據(jù)庫,在安全性中找到改用戶右鍵-屬性
第二步:找到安全對(duì)象-點(diǎn)擊搜索
圖片
第三步:在彈出的窗口中找到服務(wù)器名
圖片
第四步:在下列的選擇框中找到”查看任意定義“勾上保存,并重啟數(shù)據(jù)庫服務(wù),mssqlserver,重啟后注意要啟動(dòng)SQL代理,因?yàn)橹貑ssqlserver時(shí)會(huì)把它停掉。
圖片
創(chuàng)建一個(gè)只讀賬戶具體步驟
1、進(jìn)入sqlserver management studio
2、選擇安全性->登錄名->右鍵新建登錄名
3、在常規(guī)里輸入用戶名和密碼
4、在"用戶映射"里“映射到此登錄名的用戶”選擇該用戶可以操作的數(shù)據(jù)庫
5、在“數(shù)據(jù)庫角色成員身份”里選擇"db_datareader"
6、這樣一個(gè)只讀用戶就創(chuàng)建完成了。
服務(wù)器角色參考
bulkadmin 可以運(yùn)行 bulk insert 語句
dbcreator 創(chuàng)建,修改,刪除,還原任何數(shù)據(jù)庫
diskadmin 管理磁盤文件
processadmin 可以終止在數(shù)據(jù)庫引擎實(shí)例中運(yùn)行的程序
securityadmin 可以管理登錄名及其屬性,具有g(shù)rant,deny,和revoke服務(wù)器和數(shù)據(jù)庫級(jí)別權(quán)限,還可以重置sql server 登錄名的密碼
serveradmin 可以更改服務(wù)器范圍的配置選項(xiàng)和關(guān)閉服務(wù)器
setupadmin 可以添加和刪除鏈接服務(wù)器,并對(duì)可以執(zhí)行某些系統(tǒng)執(zhí)行存儲(chǔ)過程(如,sp_serveroption)
sysadmin 在sql server中進(jìn)行任何活動(dòng),該覺得的權(quán)限跨越所有其他固定服務(wù)器角色,默認(rèn)情況下,windows builtin\admin組(本地管理員組)的所有成員都是sysadmin
固定服務(wù)器角色的成員
用戶映射參考 (可以對(duì)數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行操作)
db_owner 可以執(zhí)行數(shù)據(jù)庫中技術(shù)所有動(dòng)作的用戶
db_accessadmin 可以添加,刪除用戶的用戶
db_datareader 可以查看所有數(shù)據(jù)庫中用戶表內(nèi)數(shù)據(jù)的用戶
db_datawrite 可以添加,修改,刪除所有數(shù)據(jù)庫用戶表內(nèi)數(shù)據(jù)的用戶
db_ddladmin 可以在數(shù)據(jù)庫中執(zhí)行ddl操作的用戶,DDL(Data Definition Language)數(shù)據(jù)表的創(chuàng)建以及管理
db_securityadmin 可以管理數(shù)據(jù)庫中與安全權(quán)限有關(guān)所有動(dòng)作的用戶
db_backoperator 可以備份數(shù)據(jù)庫的用戶(可以發(fā)布dbcc和checkPoint語句,這兩個(gè)語句一般在備份前使用
db_denydatareader 不能看到數(shù)據(jù)庫中任何數(shù)據(jù)的用戶
db_denydatawrite 不能修改數(shù)據(jù)庫中任何數(shù)據(jù)的用戶