概述 對數(shù)據(jù)庫系統(tǒng)而言,保證數(shù)據(jù)的安全性永遠都是最重要的問題之一。一個好的數(shù)據(jù)庫環(huán)境,必須明確每個用戶的職責,并分配其對應的權限。同時出現(xiàn)問題了也可以找到根源。
你是否會有這樣的需求:
- 給某個用戶查詢所有數(shù)據(jù)庫的權限
- 給某個用戶只有備份數(shù)據(jù)庫的權限
- 給一個用戶只有指定數(shù)據(jù)庫的權限
- 給一個用戶只有某個表的權限
- 給一個用戶只有查看某些對象(例如:視圖)的權限
- 給一個用戶只有執(zhí)行一些存儲過程的權限
目錄
- 元素
- 權限分配
- 新建登入名
- 給用戶分配數(shù)據(jù)庫查看權限
- 給用戶查詢某個對象的權限
- 授予用戶架構的權限
- 查詢權限
- 回收權限
- 總結
元素文章可能會有些枯燥,還望耐心,相信應該有你想要的。
登入名只有擁有了登入名才能訪問實例(sql server). 角色角色是一類權限的組合。 - 數(shù)據(jù)庫角色的擁有者可以是用戶也可以是數(shù)據(jù)庫角色本身,管理員可以創(chuàng)建數(shù)據(jù)庫角色,也可以勉強將數(shù)據(jù)庫角色理解為一組相同權限的用戶,為什么這么說呢,因為數(shù)據(jù)庫角色和數(shù)據(jù)庫用戶不允許存在同名。
071505087377384.png (37.4 KB)
下載附件
2014-11-11 00:37 上傳
注意:不要將用戶創(chuàng)建的數(shù)據(jù)庫角色添加到固定的服務器數(shù)據(jù)庫角色當中去,否則將導致固定的數(shù)據(jù)庫角色的權限升級。 - 服務器角色的擁有者只有登入名,服務器角色是固定的,用戶無法創(chuàng)建服務器角色。
071507313468050.png (64.24 KB)
下載附件
2014-11-11 00:37 上傳
注意:一般不建議給用戶直接分配服務器角色,因為服務器角色是全局的,也就是說你擁有了服務器級別的權限,一般建議給用戶分配數(shù)據(jù)庫,然后給對應的數(shù)據(jù)庫分配數(shù)據(jù)庫角色權限。 用戶 用戶是數(shù)據(jù)庫級的概念,數(shù)據(jù)庫用戶必須綁定具體的登入名,你也可以在新建登入名的時候綁定此登入名擁有的數(shù)據(jù)庫,當你綁定登入名數(shù)據(jù)庫后,數(shù)據(jù)庫默認就創(chuàng)建了此登入名同名的數(shù)據(jù)庫用戶,登入名與數(shù)據(jù)庫用戶之間就存在關聯(lián)關系,數(shù)據(jù)庫用戶是架構和數(shù)據(jù)庫角色的擁有者,即你可以將某個架構分配給用戶那么該用戶就擁有了該架構所包含的對象,你也可以將某個數(shù)據(jù)庫角色分配給用戶,此用戶就擁有該數(shù)據(jù)庫角色的權限。 架構 架構是對象的擁有者,架構本身無權限,架構包含數(shù)據(jù)庫對象:如表、視圖、存儲過程和函數(shù)等,平時最常見的默認架構dbo.,如果沒指定架構默認創(chuàng)建數(shù)據(jù)庫對象都是以dbo.開頭,架構的擁有者是數(shù)據(jù)庫用戶、數(shù)據(jù)庫角色、應用程序角色。用戶創(chuàng)建的架構和角色只能作用于當前庫。
理解了這些概念之后接下來就可以實踐了,接下來我們測試的都是服務器角色選擇public,只測試對數(shù)據(jù)庫權限的控制。
權限分配新建登入名新建一個登入名person,只給登入名服務器角色分配public權限,不分配數(shù)據(jù)庫
071530522991852.png (44.66 KB)
下載附件
2014-11-11 00:37 上傳
071531005035945.png (17.36 KB)
下載附件
2014-11-11 00:37 上傳
接下來用person登入實例,person用戶無法訪問任何數(shù)據(jù)庫,由于我們未給用戶分配任何數(shù)據(jù)庫。
071542574872269.png (23.98 KB)
下載附件
2014-11-11 00:37 上傳
給用戶分配數(shù)據(jù)庫查看權限只允許用戶查看AdventureWorks2008R2數(shù)據(jù)庫
071614168786171.png (57.82 KB)
下載附件
2014-11-11 00:37 上傳
此時用戶可以查詢所有對象,但無法修改對象。 給用戶查詢某個對象的權限 如果覺得給用戶查看權限太大了,將da_datareader數(shù)據(jù)庫角色權限回收,你會發(fā)現(xiàn)用戶可以訪問數(shù)據(jù)庫,但是看不到任何對象。
071624410652680.png (21.43 KB)
下載附件
2014-11-11 00:37 上傳
只給用戶查看Person.Address表 USE AdventureWorks2008R2;GRANT SELECT ON OBJECT::Person.Address TO person;--或者使用USE AdventureWorks2008R2;GRANT SELECT ON Person.Address TO RosaQdM;GO
071636249249512.png (22.75 KB)
下載附件
2014-11-11 00:37 上傳
擴展功能 --以下都是賦予用戶對表的dml權限[url=]
copycode.gif (263 Bytes)
下載附件
2014-11-11 00:37 上傳
[/url]
---授予用戶person對表Person.Address的修改權限USE AdventureWorks2008R2;GRANT UPDATE ON Person.Address TO person;GO---授予用戶person對表Person.Address的插入權限USE AdventureWorks2008R2;GRANT INSERT ON Person.Address TO person;GO---授予用戶person對表Person.Address的刪除權限USE AdventureWorks2008R2;GRANT DELETE ON Person.Address TO person;
--授予用戶存儲過程dbo.prc_errorlog的執(zhí)行權限
GRANT EXECUTE ON dbo.prc_errorlog TO person[url=][/url]
[url=][/url]
標量函數(shù)權限:EXECUTE、REFERENCES。
表值函數(shù)權限:DELETE、INSERT、REFERENCES、SELECT、UPDATE。
存儲過程權限:EXECUTE。
表權限:DELETE、INSERT、REFERENCES、SELECT、UPDATE。
視圖權限:DELETE、INSERT、REFERENCES、SELECT、UPDATE。
[url=][/url]
授予用戶架構的權限新建數(shù)據(jù)庫角色db_persons
071750216591898.png (51.54 KB)
下載附件
2014-11-11 00:37 上傳
新增架構 數(shù)據(jù)庫-安全性-架構
071754576129392.png (46.76 KB)
下載附件
2014-11-11 00:37 上傳
架構包含數(shù)據(jù)庫對象 創(chuàng)建架構persons表 ---創(chuàng)建架構persons的表CREATE TABLE Persons.sutdent(id int not null)
你會發(fā)現(xiàn)用戶同時有了Persons.sutdent表的查看權限,因為用戶是數(shù)據(jù)庫角色db_person的所有者,而db_person又是架構persons的所有者。
071816101285532.png (23.58 KB)
下載附件
2014-11-11 00:37 上傳
創(chuàng)建一些persons架構的視圖,存儲過程 [url=][/url]
---創(chuàng)建視圖USE AdventureWorks2008R2GOCREATE VIEW Persons.vwsutdentASSELECT * FROM Persons.sutdentGOUSE AdventureWorks2008R2GO---創(chuàng)建存儲過程CREATE PROCEDURE Persons.SP_sutdent(@OPTION NVARCHAR(50))ASBEGIN SET NOCOUNT ON IF @OPTION='Select' BEGIN SELECT * FROM Persons.sutdent ENDEND [url=][/url]
071829405495244.png (34.51 KB)
下載附件
2014-11-11 00:37 上傳
詳細的GRANT功能可以查詢2008r2連接叢書:
【必讀】版權免責聲明
1、本主題所有言論和內容純屬會員個人意見,與本論壇立場無關。2、本站對所發(fā)內容真實性、客觀性、可用性不做任何保證也不負任何責任,網(wǎng)友之間僅出于學習目的進行交流。3、對提供的數(shù)字內容不擁有任何權利,其版權歸原著者擁有。請勿將該數(shù)字內容進行商業(yè)交易、轉載等行為,該內容只為學習所提供,使用后發(fā)生的一切問題與本站無關。 4、本網(wǎng)站不保證本站提供的下載資源的準確性、安全性和完整性;同時本網(wǎng)站也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的損失或傷害。 5、本網(wǎng)站所有軟件和資料均為網(wǎng)友推薦收集整理而來,僅供學習用途使用,請務必下載后兩小時內刪除,禁止商用。6、如有侵犯你版權的,請及時聯(lián)系我們(電子郵箱1370723259@qq.com)指出,本站將立即改正。
|