sql server 2005中的服务器角色[转]
角色是一個(gè)強(qiáng)大的工具,使您得以將用戶集中到一個(gè)單元中,然后對(duì)該單元應(yīng)用權(quán)限。對(duì)一個(gè)角色授予、拒絕或廢除的權(quán)限也適用于該角色的任何成員。可以建立一個(gè)角色來代表單位中一類工作人員所執(zhí)行的工作,然后給這個(gè)角色授予適當(dāng)?shù)臋?quán)限。當(dāng)工作人員開始工作時(shí),只須將他們添加為該角色成員,當(dāng)他們離開工作時(shí),將他們從該角色中刪除。而不必在每個(gè)人接受或離開工作時(shí),反復(fù)授予、拒絕和廢除其權(quán)限。權(quán)限在用戶成為角色成員時(shí)自動(dòng)生效。
Microsoft? Windows NT? 和 Windows? 2000 組的使用方式與角色很相似。有關(guān)更多信息,請(qǐng)參見組。
如果根據(jù)工作職能定義了一系列角色,并給每個(gè)角色指派了適合這項(xiàng)工作的權(quán)限,則很容易在數(shù)據(jù)庫中管理這些權(quán)限。之后,不用管理各個(gè)用戶的權(quán)限,而只須在角色之間移動(dòng)用戶即可。如果工作職能發(fā)生改變,則只須更改一次角色的權(quán)限,并使更改自動(dòng)應(yīng)用于角色的所有成員,操作比較容易。
在 Microsoft? SQL Server? 2000 和 SQL Server 7.0 版中,用戶可屬于多個(gè)角色。
以下腳本說明登錄、用戶和角色的添加,并為角色授予權(quán)限。
USE master
GO
sp_grantlogin 'NETDOMAIN\John'
GO
sp_defaultdb 'NETDOMAIN\John', 'courses'
GO
sp_grantlogin 'NETDOMAIN\Sarah'
GO
sp_defaultdb 'NETDOMAIN\Sarah', 'courses'
GO
sp_grantlogin 'NETDOMAIN\Betty'
GO
sp_defaultdb 'NETDOMAIN\Betty', 'courses'
GO
sp_grantlogin 'NETDOMAIN\Ralph'
GO
sp_defaultdb 'NETDOMAIN\Ralph', 'courses'
GO
sp_grantlogin 'NETDOMAIN\Diane'
GO
sp_defaultdb 'NETDOMAIN\Diane', 'courses'
GO
USE courses
GO
sp_grantdbaccess 'NETDOMAIN\John'
GO
sp_grantdbaccess 'NETDOMAIN\Sarah'
GO
sp_grantdbaccess 'NETDOMAIN\Betty'
GO
sp_grantdbaccess 'NETDOMAIN\Ralph'
GO
sp_grantdbaccess 'NETDOMAIN\Diane'
GO
sp_addrole 'Professor'
GO
sp_addrole 'Student'
GO
sp_addrolemember 'Professor', 'NETDOMAIN\John'
GO
sp_addrolemember 'Professor', 'NETDOMAIN\Sarah'
GO
sp_addrolemember 'Professor', 'NETDOMAIN\Diane'
GO
sp_addrolemember 'Student', 'NETDOMAIN\Betty'
GO
sp_addrolemember 'Student', 'NETDOMAIN\Ralph'
GO
sp_addrolemember 'Student', 'NETDOMAIN\Diane'
GO
GRANT SELECT ON StudentGradeView TO Student
GO
GRANT SELECT, UPDATE ON ProfessorGradeView TO Professor
GO
該腳本給 John 和 Sarah 教授提供了更新學(xué)生成績的權(quán)限,而學(xué)生 Betty 和 Ralph 只能選擇他們自己的成績。Diane 因同時(shí)教兩個(gè)班,所以添加到兩個(gè)角色中。ProfessorGradeView 視圖應(yīng)將教授限制在自己班學(xué)生的行上,而 StudentGradeView 應(yīng)限制學(xué)生只能選擇自己的成績。
SQL Server 2000 和 SQL Server 7.0 版在安裝過程中定義幾個(gè)固定角色。可以在這些角色中添加用戶以獲得相關(guān)的管理權(quán)限。下面是服務(wù)器范圍內(nèi)的角色。
固定服務(wù)器角色
描述
sysadmin
可以在 SQL Server 中執(zhí)行任何活動(dòng)。
serveradmin
可以設(shè)置服務(wù)器范圍的配置選項(xiàng),關(guān)閉服務(wù)器。
setupadmin
可以管理鏈接服務(wù)器和啟動(dòng)過程。
securityadmin
可以管理登錄和 CREATE DATABASE 權(quán)限,還可以讀取錯(cuò)誤日志和更改密碼。
processadmin
可以管理在 SQL Server 中運(yùn)行的進(jìn)程。
dbcreator
可以創(chuàng)建、更改和除去數(shù)據(jù)庫。
diskadmin
可以管理磁盤文件。
bulkadmin
可以執(zhí)行 BULK INSERT 語句。
可以從 sp_helpsrvrole 獲得固定服務(wù)器角色的列表,可以從 sp_srvrolepermission 獲得每個(gè)角色的特定權(quán)限。
每個(gè)數(shù)據(jù)庫都有一系列固定數(shù)據(jù)庫角色。雖然每個(gè)數(shù)據(jù)庫中都存在名稱相同的角色,但各個(gè)角色的作用域只是在特定的數(shù)據(jù)庫內(nèi)。例如,如果 Database1 和 Database2 中都有叫 UserX 的用戶 ID,將 Database1 中的 UserX 添加到 Database1 的 db_owner 固定數(shù)據(jù)庫角色中,對(duì) Database2 中的 UserX 是否是 Database2 的 db_owner 角色成員沒有任何影響。
固定數(shù)據(jù)庫角色
描述
db_owner
在數(shù)據(jù)庫中有全部權(quán)限。
db_accessadmin
可以添加或刪除用戶 ID。
db_securityadmin
可以管理全部權(quán)限、對(duì)象所有權(quán)、角色和角色成員資格。
db_ddladmin
可以發(fā)出 ALL DDL,但不能發(fā)出 GRANT、REVOKE 或 DENY 語句。
db_backupoperator
可以發(fā)出 DBCC、CHECKPOINT 和 BACKUP 語句。
db_datareader
可以選擇數(shù)據(jù)庫內(nèi)任何用戶表中的所有數(shù)據(jù)。
db_datawriter
可以更改數(shù)據(jù)庫內(nèi)任何用戶表中的所有數(shù)據(jù)。
db_denydatareader
不能選擇數(shù)據(jù)庫內(nèi)任何用戶表中的任何數(shù)據(jù)。
db_denydatawriter
不能更改數(shù)據(jù)庫內(nèi)任何用戶表中的任何數(shù)據(jù)。
可以從 sp_helpdbfixedrole 獲得固定數(shù)據(jù)庫角色的列表,可以從 sp_dbfixedrolepermission 獲得每個(gè)角色的特定權(quán)限。
數(shù)據(jù)庫中的每個(gè)用戶都屬于 public 數(shù)據(jù)庫角色。如果想讓數(shù)據(jù)庫中的每個(gè)用戶都能有某個(gè)特定的權(quán)限,則將該權(quán)限指派給 public 角色。如果沒有給用戶專門授予對(duì)某個(gè)對(duì)象的權(quán)限,他們就使用指派給 public 角色的權(quán)限。
轉(zhuǎn)載于:https://www.cnblogs.com/ibmghost/archive/2012/07/26/2610167.html
總結(jié)
以上是生活随笔為你收集整理的sql server 2005中的服务器角色[转]的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [转载]Lua脚本与C++交互
- 下一篇: ASP.NET操作Excel(终极方法N