sql2005安全
1. 在sql2005中,通過SQL語句添加安全賬戶,可是卻出現了「為參數 PASSWORD 提供的值無效」,請看補充:
密碼的長度不能小於8個字元,將密碼設長一些即可。
2. 如何設置SQL Server登錄的默認資料庫和許可權。
sql server2005安全管理之用戶、角色、架構 與 許可權
2008-12-04 16:47
--打開資料庫
Use databaseName
--創建角色
create role ProgramerRole
--用於創建表 存儲過程 視圖
grant create table,create procere,create view to ProgramerRole
--execute用以執行存儲過程,alter用以創建、修改存儲過程和視圖,
--並可以新建立表,但不能修改表,但也可以刪除表和對表改名了
grant select,insert,execute,alter on schema::dbo to ProgramerRole
--用於允許用戶查看 顯示估計的執行計劃(081205)
grant showplan to ProgramerRole
--創建登錄賬號
--create login username with password='password'
--創建資料庫用戶
create user username for login username
--將用戶TestUser添加到TestRole角色中
exec sp_addrolemember 'ProgramerRole','username '
--執行Sql Server Profiler是伺服器級許可權,所以在master庫中授權
USE master;grant alter trace to auto;
註:據庫引擎優化顧問必須由具有系統管理員許可權的用戶進行初始化。在具有系統管理員許可權的用戶對資料庫引擎優化顧問進行初始化之後,任何是 db_owner 固定資料庫角色成員的用戶,都可以使用資料庫引擎優化顧問來優化他們擁有的資料庫上的表。
詳優化物理資料庫設計http://msdn.microsoft.com/zh-cn/library/ms191531(SQL.90).aspx
參考資料:
用戶架構分離:http://msdn.microsoft.com/zh-cn/library/ms190387(SQL.90).aspx
資料庫架構是一個獨立於資料庫用戶的非重復命名空間。您可以將架構視為對象的容器
主體:http://msdn.microsoft.com/zh-cn/library/ms181127(SQL.90).aspx
是可以請求 SQL Server 資源的實體
Windows 級別的主體
Windows 域登錄名
Windows 本地登錄名
SQL Server 級的主體
SQL Server 登錄名
資料庫級的主體
資料庫用戶
資料庫角色
應用程序角色
安全對象:http://msdn.microsoft.com/zh-cn/library/ms190401(SQL.90).aspx
安全對象是 SQL Server 資料庫引擎 授權系統控制對其進行訪問的資源
安全對象范圍有伺服器、資料庫和架構
安全對象范圍:伺服器包含以下安全對象:
端點
登錄帳戶
資料庫
安全對象范圍:資料庫包含以下安全對象:
用戶
角色
應用程序角色
程序集
消息類型
路由
服務
遠程服務綁定
全文目錄
證書
非對稱密鑰
對稱密鑰
約定
架構
安全對象范圍:架構包含以下安全對象:
類型
XML 架構集合
對象
對象 下面是對象類的成員:
聚合
約束
函數
過程
隊列
統計信息
同義詞
表
視圖
架構:http://msdn.microsoft.com/zh-cn/library/ms365789(SQL.90).aspx
架構是指包含表、視圖、過程等的容器。它位於資料庫內部,而資料庫位於伺服器內部
特定架構中的每個安全對象都必須有唯一的名稱。架構中安全對象的完全指定名稱包括此安全對象所在的架構的名稱。因此,架構也是命名空間
許可權:http://msdn.microsoft.com/zh-cn/library/ms190387(SQL.90).aspx
每個 SQL Server 2005 安全對象都有可以授予主體的關聯許可權
資料庫級別的角色:http://msdn.microsoft.com/zh-cn/library/ms189121(SQL.90).aspx
固定資料庫角色是在資料庫級別定義的,並且存在於每個資料庫中。db_owner 和 db_securityadmin 資料庫角色的成員可以管理固定資料庫角色成員身份;但是,只有 db_owner 資料庫的成員可以向 db_owner 固定資料庫角色中添加成員。
每個資料庫用戶都屬於 public 資料庫角色。當尚未對某個用戶授予或拒絕對安全對象的特定許可權時,則該用戶將繼承授予該安全對象的 public 角色的許可權
伺服器級別角色:http://msdn.microsoft.com/zh-cn/library/ms188659(SQL.90).aspx
固定伺服器角色在其作用域內屬於伺服器范圍。固定伺服器角色的每個成員都可以向其所屬角色添加其他登錄名。
GRANT 架構許可權:http://msdn.microsoft.com/zh-cn/library/ms187940(SQL.90).aspx
如何配置用戶以創建和管理 SQL Server 代理作業 http://msdn.microsoft.com/zh-cn/library/ms187901.aspx
若要配置用戶以創建或執行 Microsoft SQL Server 代理作業,必須先將某個現有 SQL Server 登錄名或 msdb 角色添加到 msdb 資料庫中的下列 SQL Server 代理固定資料庫角色之一:SQLAgentUserRole、SQLAgentReaderRole 或 SQLAgentOperatorRole。
默認情況下,這些資料庫角色的成員可以創建各自的作業步驟,這些作業步驟不執行其他作業步驟。如果這些非管理用戶要運行那些執行其他作業步驟類型(例如,SSIS 包)的作業,它們需要對代理帳戶具有訪問許可權。sysadmin 固定伺服器角色的所有成員都有創建、修改和刪除代理帳戶的許可權
為具體的用戶設置具體的訪問許可權 收藏
use 你的庫名
go
--新增用戶
exec sp_addlogin 'test' --添加登錄
exec sp_grantdbaccess N'test' --使其成為當前資料庫的合法用戶
exec sp_addrolemember N'db_owner', N'test' --授予對自己資料庫的所有許可權
--這樣創建的用戶就只能訪問自己的資料庫,及資料庫中包含了guest用戶的公共表
go
--刪除測試用戶
exec sp_revokedbaccess N'test' --移除對資料庫的訪問許可權
exec sp_droplogin N'test' --刪除登錄
如果在企業管理器中創建的話,就用:
企業管理器--安全性--右鍵登錄--新建登錄
常規項
--名稱中輸入用戶名
--身份驗證方式根據你的需要選擇(如果是使用windows身份驗證,則要先在操作系統的用戶中新建用戶)
--默認設置中,選擇你新建的用戶要訪問的資料庫名
伺服器角色項
這個裡面不要選擇任何東西
資料庫訪問項
勾選你創建的用戶需要訪問的資料庫名
資料庫角色中允許,勾選"public","db_ownew"
確定,這樣建好的用戶與上面語句建立的用戶一樣
---------------------------------------------------------------------------
最後一步,為具體的用戶設置具體的訪問許可權,這個可以參考下面的最簡示例:
--添加只允許訪問指定表的用戶:
exec sp_addlogin '用戶名','密碼','默認資料庫名'
--添加到資料庫
exec sp_grantdbaccess '用戶名'
--分配整表許可權
GRANT SELECT , INSERT , UPDATE , DELETE ON table1 TO [用戶名]
--分配許可權到具體的列
GRANT SELECT , UPDATE ON table1(id,AA) TO [用戶名]