如何分配數據庫角色權限


  1 sql server2005安全管理之用戶、角色、架構 與 權限 
  2 2008-12-04 16:47 
  3 --打開數據庫 
  4 Use databaseName 
  5 
  6 --創建角色 
  7 create role ProgramerRole 
  8 
  9 --用於創建表 存儲過程 視圖 
 10 grant create table,create procedure,create view to ProgramerRole 
 11 
 12 --execute用以執行存儲過程,alter用以創建、修改存儲過程和視圖, 
 13 --並可以新建立表,但不能修改表,但也可以刪除表和對表改名了 
 14 grant select,insert,execute,alter on schema::dbo to ProgramerRole 
 15 
 16 --用於允許用戶查看 顯示估計的執行計划(081205) 
 17 grant showplan to ProgramerRole 
 18 
 19 --創建登錄賬號 
 20 --create login username with password='password' 
 21 --創建數據庫用戶 
 22 create user username for login username 
 23 
 24 --將用戶TestUser添加到TestRole角色中 
 25 exec sp_addrolemember 'ProgramerRole','username ' 
 26 
 27 --執行Sql Server Profiler是服務器級權限,所以在master庫中授權 
 28 USE master;grant alter trace to auto; 
 29 
 30 
 31 注:據庫引擎優化顧問必須由具有系統管理員權限的用戶進行初始化。在具有系統管理員權限的用戶對數據庫引擎優化顧問進行初始化之后,任何是 db_owner 固定數據庫角色成員的用戶,都可以使用數據庫引擎優化顧問來優化他們擁有的數據庫上的表。 
 32 詳優化物理數據庫設計http://msdn.microsoft.com/zh-cn/library/ms191531(SQL.90).aspx 
 33 
 34 參考資料: 
 35 用戶架構分離:http://msdn.microsoft.com/zh-cn/library/ms190387(SQL.90).aspx 
 36     數據庫架構是一個獨立於數據庫用戶的非重復命名空間。您可以將架構視為對象的容器 
 37 主體:http://msdn.microsoft.com/zh-cn/library/ms181127(SQL.90).aspx 
 38       是可以請求 SQL Server 資源的實體 
 39     
 40 Windows 級別的主體 
 41 
 42 Windows 域登錄名 
 43 Windows 本地登錄名 
 44 SQL Server 級的主體 
 45 
 46 SQL Server 登錄名 
 47 數據庫級的主體 
 48 
 49 數據庫用戶 
 50 數據庫角色 
 51 應用程序角色 
 52 安全對象:http://msdn.microsoft.com/zh-cn/library/ms190401(SQL.90).aspx 
 53 安全對象是 SQL Server 數據庫引擎 授權系統控制對其進行訪問的資源    
 54 安全對象范圍有服務器、數據庫和架構 
 55 安全對象范圍:服務器包含以下安全對象: 
 56 端點 
 57 登錄帳戶 
 58 數據庫 
 59 
 60 安全對象范圍:數據庫包含以下安全對象: 
 61 用戶 
 62 角色 
 63 應用程序角色 
 64 程序集 
 65 消息類型 
 66 路由 
 67 服務 
 68 遠程服務綁定 
 69 全文目錄 
 70 證書 
 71 非對稱密鑰 
 72 對稱密鑰 
 73 約定 
 74 架構 
 75 
 76 安全對象范圍:架構包含以下安全對象: 
 77 類型 
 78 XML 架構集合 
 79 對象 
 80 
 81 對象 下面是對象類的成員: 
 82 聚合 
 83 約束 
 84 函數 
 85 過程 
 86 隊列 
 87 統計信息 
 88 同義詞 
 89  90 視圖 
 91 
 92 架構:http://msdn.microsoft.com/zh-cn/library/ms365789(SQL.90).aspx 
 93 架構是指包含表、視圖、過程等的容器。它位於數據庫內部,而數據庫位於服務器內部 
 94 特定架構中的每個安全對象都必須有唯一的名稱。架構中安全對象的完全指定名稱包括此安全對象所在的架構的名稱。因此,架構也是命名空間 
 95 
 96 權限:http://msdn.microsoft.com/zh-cn/library/ms190387(SQL.90).aspx 
 97 每個 SQL Server 2005 安全對象都有可以授予主體的關聯權限 
 98 
 99 數據庫級別的角色:http://msdn.microsoft.com/zh-cn/library/ms189121(SQL.90).aspx 
100 固定數據庫角色是在數據庫級別定義的,並且存在於每個數據庫中。db_owner 和 db_securityadmin 數據庫角色的成員可以管理固定數據庫角色成員身份;但是,只有 db_owner 數據庫的成員可以向 db_owner 固定數據庫角色中添加成員。 
101 每個數據庫用戶都屬於 public 數據庫角色。當尚未對某個用戶授予或拒絕對安全對象的特定權限時,則該用戶將繼承授予該安全對象的 public 角色的權限    
102 服務器級別角色:http://msdn.microsoft.com/zh-cn/library/ms188659(SQL.90).aspx 
103 固定服務器角色在其作用域內屬於服務器范圍。固定服務器角色的每個成員都可以向其所屬角色添加其他登錄名。 
104 
105 GRANT 架構權限:http://msdn.microsoft.com/zh-cn/library/ms187940(SQL.90).aspx 
106 
107 如何配置用戶以創建和管理 SQL Server 代理作業 http://msdn.microsoft.com/zh-cn/library/ms187901.aspx 
108 
109 若要配置用戶以創建或執行 Microsoft SQL Server 代理作業,必須先將某個現有 SQL Server 登錄名或 msdb 角色添加到 msdb 數據庫中的下列 SQL Server 代理固定數據庫角色之一:SQLAgentUserRole、SQLAgentReaderRole 或 SQLAgentOperatorRole。 
110 
111 默認情況下,這些數據庫角色的成員可以創建各自的作業步驟,這些作業步驟不執行其他作業步驟。如果這些非管理用戶要運行那些執行其他作業步驟類型(例如,SSIS 包)的作業,它們需要對代理帳戶具有訪問權限。sysadmin 固定服務器角色的所有成員都有創建、修改和刪除代理帳戶的權限
112 
113 
114 
115 
116 
117 
118 為具體的用戶設置具體的訪問權限 收藏 
119 use 你的庫名
120 go
121 
122 --新增用戶
123 exec sp_addlogin 'test'            --添加登錄
124 exec sp_grantdbaccess N'test'            --使其成為當前數據庫的合法用戶
125 exec sp_addrolemember N'db_owner', N'test'            --授予對自己數據庫的所有權限
126 
127 --這樣創建的用戶就只能訪問自己的數據庫,及數據庫中包含了guest用戶的公共表
128 go
129 
130 --刪除測試用戶
131 exec sp_revokedbaccess N'test'            --移除對數據庫的訪問權限
132 exec sp_droplogin N'test'            --刪除登錄
133 
134 
135 如果在企業管理器中創建的話,就用:
136 
137 企業管理器--安全性--右鍵登錄--新建登錄
138 
139 常規項
140 --名稱中輸入用戶名
141 --身份驗證方式根據你的需要選擇(如果是使用windows身份驗證,則要先在操作系統的用戶中新建用戶)
142 --默認設置中,選擇你新建的用戶要訪問的數據庫名
143 
144 服務器角色項
145 這個里面不要選擇任何東西
146 
147 數據庫訪問項
148 勾選你創建的用戶需要訪問的數據庫名
149 數據庫角色中允許,勾選"public","db_ownew"
150 
151 確定,這樣建好的用戶與上面語句建立的用戶一樣
152 ---------------------------------------------------------------------------
153 
154 最后一步,為具體的用戶設置具體的訪問權限,這個可以參考下面的最簡示例:
155 
156 --添加只允許訪問指定表的用戶:
157 exec sp_addlogin '用戶名','密碼','默認數據庫名'
158 
159 --添加到數據庫
160 exec sp_grantdbaccess '用戶名'
161 
162 --分配整表權限
163 GRANT SELECT , INSERT , UPDATE , DELETE ON table1 TO [用戶名]
164 
165 --分配權限到具體的列
166 GRANT SELECT , UPDATE ON table1(id,AA) TO [用戶名]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM