當前位置:首頁 » 數據倉庫 » 為資料庫角色添加成員
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

為資料庫角色添加成員

發布時間: 2022-10-31 22:45:01

A. sql server 2005中資料庫角色成員身份中那些東西都是什麼意思啊,如果只選public會有哪些許可權

12.4 角色 當幾個用戶需要在某個特定的資料庫中執行類似的動作時(這里沒有相應的Windows用戶組),就可以向該資料庫中添加一個角色(role)。資料庫角色指定了可以訪問相同資料庫對象的一組資料庫用戶。資料庫角色的成員可以分為如下幾類:Windows用戶組或用戶賬戶SQL Server登錄其他角色SQL Server的安全體系結構中包括了幾個含有特定隱含許可權的角色。除了資料庫擁有者創建的角色之外,還有兩類預定義的角色。這些可以創建的角色可以分為如下幾類:固定伺服器固定資料庫用戶自定義12.4.1 固定伺服器 由於固定伺服器是在伺服器層次上定義的,因此它們位於從屬於資料庫伺服器的資料庫外面。表12-1列出了所有現有的固定伺服器角色。表12-1 固定伺服器角色固定伺服器角色說 明sysadmin執行SQL Server中的任何動作serveradmin配置伺服器設置setupadmin安裝復制和管理擴展過程securityadmin管理登錄和CREATE DATABASE的許可權以及閱讀審計processadmin管理SQL Server進程dbcreator創建和修改資料庫diskadmin管理磁碟文件下面兩個系統過程用來添加或刪除固定伺服器角色成員:sp_addsrvrolemember sp_dropsrvrolemember 注意:您不能添加、修改或刪除固定伺服器角色。另外,只有固定伺服器角色的成員才能執行上述兩個系統過程來從角色中添加或刪除登錄賬戶。sa登錄 sa登錄是系統管理員的登錄。在以前的SQL Server版本中不存在角色,sa登錄具有所有可能的關於系統管理工作的許可權。在SQL Server 2005中,sa登錄保持了向後兼容性。sa登錄永遠是固定伺服器角色syadmin中的成員,並且不能從該角色中刪除。注意:只有當沒有其他方法登錄到SQL Server系統中時,再使用sa登錄。12.4.2 固定伺服器角色及其許可權 在某個SQL Server系統中,每個固定伺服器角色都有其隱含的許可權。使用系統過程sp_srvrolepermission可以瀏覽每個固定伺服器角色的許可權。該系統過程的語法形式為:sp_srvrolepermission[[@srvrolename =] 'role'] 如果沒有指定role的值,那麼所有的固定伺服器角色的許可權都將顯示出來。下面的部分將討論每個固定伺服器角色的許可權。1. sysadmin 固定伺服器角色sysadmin的成員被賦予了SQL Server系統中所有可能的許可權。例如,只有這個角色中的成員(或一個被這個角色中的成員賦予了CREATE DATABASE許可權的用戶)才能夠創建資料庫。固定伺服器角色和sa登錄之間有著特殊的關系。sa登錄一直都是固定伺服器角色中的成員,並且不能從該角色中刪除。2. serveradmin 固定伺服器角色serveradmin的成員可以執行如下的動作:向該伺服器角色中添加其他登錄運行dbcc pintable命令(從而使表常駐於主內存中)運行系統過程sp_configure(以顯示或更改系統選項)運行reconfigure選項(以更新系統過程sp_configure所做的所有改動)使用shutdown命令關掉資料庫伺服器運行系統過程sp_tableoption為用戶自定義表設置選項的值3. setupadmin 固定伺服器角色setupadmin中的成員可以執行如下的動作:向該伺服器角色中添加其他登錄添加、刪除或配置鏈接的伺服器執行一些系統過程,如sp_serveroption4. securityadmin 固定伺服器角色securitypadmin中的成員可以執行關於伺服器訪問和安全的所有動作。這些成員可以進行如下的系統動作:向該伺服器角色中添加其他登錄讀取SQL Server的錯誤日誌運行如下的系統過程:如sp_addlinkedsrvlogin、sp_addlogin、sp_defaultdb、sp_defaultlanguage、sp_denylogin、sp_droplinkedsrvlogin、sp_droplogin、sp_grantlogin、sp_helplogins、sp_remoteoption和sp_revokelogin(所有這些系統過程都與系統安全相關。)5. processadmin 固定伺服器角色processadmin中的成員用來管理SQL Server進程,如中止用戶正在運行的查詢。這些成員可以進行如下的動作:向該伺服器角色中添加其他登錄執行KILL命令(以取消用戶進程)6. dbcreator 固定伺服器角色dbcreator中的成員用來管理與資料庫創建和修改有關的所有動作。這些成員可以進行如下的動作:向該伺服器角色中添加其他登錄運行CREATE DATABASE和ALTER DATABASE語句使用系統過程sp_renamedb來修改資料庫的名稱7. diskadmin 固定伺服器角色diskadmin的成員可以進行如下與用來存儲資料庫對象的文件和文件組有關的動作:向該伺服器角色中添加其他登錄運行如下系統過程:sp_dmpdevice和sp_dropdevice。運行DISK INIT語句12.4.3 固定資料庫角色 固定資料庫角色在資料庫層上進行定義,因此它們存在於屬於資料庫伺服器的每個資料庫中。表12-2列出了所有的固定資料庫角色。表12-2 固定資料庫角色固定資料庫角色說 明db_owner可以執行資料庫中技術所有動作的用戶db_accessadmin可以添加、刪除用戶的用戶db_datareader可以查看所有資料庫中用戶表內數據的用戶db_datawriter可以添加、修改或刪除所有資料庫中用戶表內數據的用戶db_ddladmin可以在資料庫中執行所有DDL操作的用戶db_securityadmin可以管理資料庫中與安全許可權有關所有動作的用戶db_backoperator可以備份資料庫的用戶(並可以發布DBCC和CHECKPOINT語句,這兩個語句一般在備份前都會被執行)db_denydatareader不能看到資料庫中任何數據的用戶db_denydatawriter不能改變資料庫中任何數據的用戶除了表12-2中列出的固定資料庫角色之外,還有一種特殊的固定資料庫角色,名為public,這里將首先介紹這一角色。public角色 public角色是一種特殊的固定資料庫角色,資料庫的每個合法用戶都屬於該角色。它為資料庫中的用戶提供了所有默認許可權。這樣就提供了一種機制,即給予那些沒有適當許可權的所有用戶以一定的(通常是有限的)許可權。public角色為資料庫中的所有用戶都保留了默認的許可權,因此是不能被刪除的。(示例12.12給出了public角色的使用方法。)一般情況下,public角色允許用戶進行如下的操作:使用某些系統過程查看並顯示master資料庫中的信息執行一些不需要一些許可權的語句(例如PRINT)12.4.4 固定資料庫角色及其許可權 在資料庫中,每個固定資料庫角色都有其特定的許可權。這就意味著對於某個資料庫來說,固定資料庫角色的成員的許可權是有限的。使用系統過程sp_dbfixedrolepermission就可以查看每個固定資料庫角色的許可權。該系統過程的語法為:sp_db.xedrolepermission [[@rolename =] 'role'] 如果沒有指定role的值,那麼所有固定資料庫角色的許可權都可以顯示出來。下面的幾節將討論每個固定資料庫角色的許可權。1. db_owner 固定資料庫角色db_owner的成員可以在特定的資料庫中進行如下的動作:向其他固定資料庫角色中添加成員,或從其中刪除成員運行所有的DDL語句運行BACKUP DATABASE和BACKUP LOG語句使用CHECKPOINT語句顯式地啟動檢查點進程運行下列dbcc命令:dbcc checkalloc、dbcc checkcatalog、dbcc checkdb、dbcc updateusage授予、取消或剝奪每一個資料庫對象上的下列許可權:SELECT、INSERT、UPDATE、DELETE和REFERENCES使用下列系統過程向資料庫中添加用戶或角色:sp_addapprole、sp_addrole、sp_addrolemember、sp_approlepassword、sp_changeobjectowner、sp_dropapprole、sp_droprole、sp_droprolemember、sp_dropuser、sp_grantdbaccess使用系統過程sp_rename為任何資料庫對象重新命名2. db_accessadmin 固定資料庫角色db_accessadmin的成員可以執行與資料庫訪問有關的所有動作。這些角色可以在具體的資料庫中執行下列操作:運行下列系統過程:sp_addalias、sp_dropalias、sp_dropuser、sp_grantdbacess、sp_revokedbaccess為Windows用戶賬戶、Windows組和SQL Server登錄添加或刪除訪問3. dbdatareader 固定資料庫角色dbdatareader的成員對資料庫中的資料庫對象(表或視圖)具有SELECT許可權。然而,這些成員不能把這個許可權授予其他任何用戶或角色。(這個限制對REVOKE語句來說同樣成立。)4. dbdatawriter 固定資料庫角色dbdatawriter的成員對資料庫中的資料庫對象(表或視圖)具有INSERT、UPDATE和DELETE許可權。然而,這些成員不能把這個許可權授予其他任何用戶或角色。(這個限制對REVOKE語句來說也同樣成立。)5. db_ddladmin 固定資料庫角色db_ddladmin的成員可以進行如下的動作:運行所有DDL語句對任何錶上授予REFERENCESE許可權使用系統過程sp_procoption和sp_recompile來修改任何存儲過程的結構使用系統過程sp_rename為任何資料庫對象重命名使用系統過程sp_tableoption和sp_changeobjectowner分別修改表的選項和任何資料庫對象的擁有者6. db_securityadmin 固定資料庫角色db_securityadmin的成員可以管理資料庫中的安全。這些成員可以進行如下的動作:運行與安全有關的所有Transact-SQL語句(GRANT、DENY和REVOKE)運行以下系統過程:sp_addapprole、sp_addrole、sp_addrolemember、sp_approlepassword、sp_changeobjectowner、sp_dropapprole、sp_droprole、sp_droprolemember7. db_backupoperator 固定資料庫角色db_backupoperator的成員可以管理資料庫備份的過程。這些成員可以進行如下動作:運行BACKUP DATABASE和BACKUP LOG語句用CHECKPOINT語句顯式地啟動檢查點進程運行如下dbcc命令:dbcc checkalloc、dbcc checkcatalog、dbcc checkdb、dbcc updateusage8. db_denydatareader和db_denydatawriter 顧名思義,固定資料庫角色db_denydatareader的成員對資料庫中的資料庫對象(表或視圖)沒有SELECT許可權。如果資料庫中含有敏感數據並且其他用戶不能讀取這些數據,那麼就可以使用這個角色。固定資料庫角色db_denydatawriter的成員對資料庫中的任何資料庫對象(表或視圖)沒有INSERT、UPDATE和DELETE許可權。12.4.5 應用程序角色 應用程序角色可以加強對某個特定的應用程序的安全。換句話說,這些角色允許應用程序自己代替SQL Server接管用戶身份驗證的職責。比如,如果公司中的員工只是使用某個特定的應用程序(而不是Transact-SQL語句或其他任何工具)來修改員工的數據信息,那麼就可以為它創建一個應用程序角色。應用程序角色與其他的角色類型有著顯著不同。首先,因為應用程序角色只使用應用程序,因而不需要把許可權直接賦予用戶,所以應用程序角色沒有任何成員。其次,您需要為應用程序設置一個口令來激活它。當應用程序角色被應用程序的會話激活以後,在會話期間,會話就失去了適用於登錄、用戶賬戶或所有資料庫中的角色的許可權。1. 創建應用程序角色 使用下列方法可以創建應用程序角色:CREATE APPLICATION ROLE語句系統過程sp_addapproleCREATE APPLICATION ROLE語句可以為當前資料庫創建一個應用程序角色。該語句有兩個選項:一個與口令的規范有關,另一個用於默認模式的定義,也就是,當伺服器為該角色指定對象的名稱時,伺服器將要搜索的第一個模式。示例12.10顯示了一個應用程序角色的創建方法。示例12.10USE sample CREATE APPLICATION ROLE weekly_reports WITH PASSWORD ='x1y2z3w4', DEFAULT_SCHEMA =my_schema 示例12.10向當前資料庫中添加了一個名為weekly_reports的新的應用程序角色。創建新的應用程序角色的第二種方法是使用系統過程sp_addapprole。使用系統過程sp_addapprole,就可以創建應用程序角色並把許可權授予它們。該系統過程有如下的語法形式:sp_addapprole [@rolename =] 'role', [@passwd_name =] 'password'其中role指定了應用程序角色的名稱,password是相應的口令。(激活角需要用到password的值。)注意:SQL Server將來的版本中將刪除系統過程sp_addapprole這部分內容。請避免使用這一功能。您可以使用CREATE APPLICATION ROLE語句來代替。2. 激活應用程序角色 當啟動連接以後,必須執行sp_setapprole系統過程來激活與應用程序角色有關的許可權。該過程的語法形式如下所示:sp_setapprole[@rolename =] 'role', [@password =] 'password'[,[@encrypt =] 'encrypt_style'] 其中role是在當前資料庫中定義的應用程序角色的名稱。password指定了相應的口令,而encrypt_style則定義了口令的加密樣式。在使用系統過程sp_setapprole激活應用程序角色時,必須知道如下的一些事項:在激活了應用程序角色之後,在當前資料庫中就不能使這個角色無效,而必須等到會話從SQL Server中斷開連接之後才可以。應用程序角色總是和資料庫綁定在一起的。也就是說,應用程序角色的作用域是當前資料庫。如果在會話中改變了當前資料庫,那麼根據那個資料庫的許可權,只能執行那個資料庫中允許的(其他)動作。注意:通過提供應用程序角色的正確口令,任何用戶都可以執行系統過程sp_setapprole。3. 修改應用程序角色 使用下列Transact SQL語句可以修改應用程序角色:ALTER APPLICATION ROLEDROP APPLICATION ROLEALTER APPLICATION ROLE語句可以修改已有的應用程序角色的名稱、口令或默認模式。該語句的語法與CREATE APPLICATION ROLE語句的語法形式類似。要想執行ALTER APPLICATION ROLE語句,需要取得對該對象的ALTER許可權。DROP APPLICATION ROLE語句可以從當前資料庫中刪除應用程序角色。如果應用程序角色擁有任何對象(可保護對象),就不能刪除該角色。注意:您同樣可以使用系統過程sp_dropapprole來刪除某個應用程序角色,但是在SQL Server將來的版本將刪除該系統過程,不再使用它。12.4.6 用戶自定義的資料庫角色 一般來說,在一組資料庫用戶需要在資料庫中執行一套常用操作並且不存在可用的Windows用戶組的情況下,才可能用到用戶自定義的資料庫角色。這些角色通過Transact-SQL語句或SQL Server系統過程進行管理。接下來我們將討論Transact-SQL語句,然後介紹相應的系統過程。1. 角色和Transact-SQL CREATE ROLE語句可以在當前資料庫中創建一個新的資料庫角色。該語句的語法格式為:CREATE ROLE role_name[AUTHORIZATION owner_name] 其中role_name是創建的用戶自定義的角色的名稱。Owner_name指定了即將擁有這個新角色的資料庫用戶或角色。(如果沒有指定用戶,那麼該角色將由執行CREATE ROLE語句的用戶所擁有。)CREATE ROLE語句可以修改用戶自定義的資料庫角色的名稱。類似地,DROP ROLE語句可以從資料庫中刪除角色。擁有資料庫對象(可保護對象)的角色不能從資料庫中刪除。要想刪除這類角色,必須首先轉換那些對象的從屬關系。DROP ROLE語句的語法形式如下所示:DROP ROLE role_name 2. 角色和系統過程 創建或修改用戶自定義角色的另一個方法是使用SQL Server系統過程。下列系統過程可以用來創建和顯示用戶自定義的資料庫角色:sp_addrole sp_addrolemember sp_droprolemember sp_droprole sp_helprole 系統過程sp_addrole可以在當前資料庫中創建一個新的角色。只有資料庫角色db_securityadmin或db_owner才能夠執行這個系統過程。注意:SQL Server 2005中包含的系統過程sp_addrole只是向後兼容的,在將來發布的SQL Server版本中可能不再支持該系統過程。所以請使用CREATE ROLE語句來代替。向當前資料庫中添加了一個角色之後,就可以使用系統過程sp_addrolemember來添加該角色的成員。角色的成員可以是任何SQL Server中的合法用戶、Windows用戶組或用戶,或另一個SQL Server角色。只有資料庫角色db_owner的成員才能執行該系統過程。另外,角色擁有者也可以執行sp_addrolemember來向它所擁有的任何角色中添加成員。系統過程sp_droprolemember可以用來從角色中刪除現有的成員。(但是不能使用這一系統過程來從某個Windows組中刪除現有的Windows用戶。)只有資料庫角色db_owner或db_securityadmin才能執行該系統過程。在使用系統過程sp_droprolemember刪除了角色中的所有成員之後,可以使用系統過程sp_droprole來從當前資料庫中刪除角色。(含有現有成員的角色不能刪除。)只有資料庫角色db_owner或db_securityadmin才能執行該系統過程。注意:SQL Server 2005中包含的系統過程sp_droprole只是向後兼容的,在將來發布的SQL Server版本中可能不再支持該系統過程。所以請使用DROP ROLE語句來代替。系統過程sp_helprole可以用來顯示當前資料庫中某個特定的角色或所有角色(如果沒有提供角色名稱)的相關信息(角色名稱和角色的ID號)。只有資料庫角色db_owner或db_securityadmin才能執行該系統過程。

B. SQL server 2000 創建資料庫角色以及向資料庫角色添加用戶的命令行是什麼

sp_addlogin 'USER','PWD','DATABASE'
sp_addsrvrolemember 'USER','sysadmin'
sp_adser 'USER','USER','db_owner'

C. sql server中利用sql語句如何創建角色和用戶

, securityadmingo--作好SQL的安全管理--作者:鄒建 首先,做好用戶安全:--簡單的,只允許sql的用戶訪問sql(防止利用administrator組用戶訪問)1 .企業管理器--右鍵SQL實例--屬性--安全性--身份驗證--選擇"sql server和windows"--確定2 .企業管理器--安全性--登陸--右鍵sa--設置密碼--其他用戶也設置密碼3 .刪除用戶:BUILTIN\Administrators<機器名 \Administrator--這個用戶不一定有 這樣可以防止用windows身份登陸SQL4 .設置進入企業管理器需要輸入密碼 在企業管理器中--右鍵你的伺服器實例(就是那個有綠色圖標的)--編輯SQL Server注冊屬性--選擇"使用 SQL Server 身份驗證"--並勾選"總是提示輸入登錄名和密碼"--確定--經過上面的設置,你的SQL Server基本上算是安全了.------------------------------------------------------------------------ 其次,改默認埠,隱藏伺服器,減少被攻擊的可能性 SQL Server伺服器--開始--程序--Microsoft SQL Server--伺服器網路實用工具--啟用的協議中"TCP/IP"--屬性--默認埠,輸入一個自已定義的埠,比如2433--勾選隱藏伺服器------------------------------------------------------------------------------管好sql的用戶,防止訪問他不該訪問的資料庫(總控制,明細還可以控制他對於某個資料庫的具體對象具有的許可權)--切換到你新增的用戶要控制的資料庫use你的庫名go--新增用戶execsp_addlogin'test'--添加登錄execsp_grantdbaccess N'test'--使其成為當前資料庫的合法用戶execsp_addrolemember N'db_owner' , N'test'--授予對自己資料庫的所有許可權--這樣創建的用戶就只能訪問自己的資料庫,及資料庫中包含了guest用戶的公共表go--刪除測試用戶execsp_revokedbaccess N'test'--移除對資料庫的訪問許可權execsp_droplogin N'test'--刪除登錄 如果在企業管理器中創建的話,就用:企業管理器--安全性--右鍵登錄--新建登錄常規項--名稱中輸入用戶名--身份驗證方式根據你的需要選擇(如果是使用windows身份驗證,則要先在操作系統的用戶中新建用戶)--默認設置中,選擇你新建的用戶要訪問的資料庫名 伺服器角色項 這個裡面不要選擇任何東西 資料庫訪問項 勾選你創建的用戶需要訪問的資料庫名 資料庫角色中允許,勾選"public ","db_ownew" 確定,這樣建好的用戶與上面語句建立的用戶一樣--------------------------------------------------------------------------- 最後一步,為具體的用戶設置具體的訪問許可權,這個可以參考下面的最簡示例:--添加只允許訪問指定表的用戶:execsp_addlogin'用戶名','密碼','默認資料庫名'--添加到資料庫execsp_grantdbaccess'用戶名'--分配整表許可權GRANTSELECT, INSERT, UPDATE, DELETEONtable1TO[用戶名]--分配許可權到具體的列GRANTSELECT, 至於具體的安全設置和理論知道,參考SQL聯機幫助

D. 添加或刪除組織管理員/基礎數據管理員/一般用戶為哪個角色具有的許可權

資料庫級別的角色名稱及說明

db_owner 固定資料庫角色的成員可以執行資料庫的所有配置和維護活動,還可以刪除資料庫。

db_securityadmin 固定資料庫角色的成員可以修改角色成員身份和管理許可權。向此角色中添加主體可能會導致意外的許可權升級。

db_accessadmin 固定資料庫角色的成員可以為 Windows 登錄名、Windows 組和 SQL Server 登錄名添加或刪除資料庫訪問許可權。

db_backupoperator 固定資料庫角色的成員可以備份資料庫。

db_ddladmin 固定資料庫角色的成員可以在資料庫中運行任何數據定義語言 (DDL) 命令。

db_datawriter 固定資料庫角色的成員可以在所有用戶表中添加、刪除或更改數據。

db_datareader 固定資料庫角色的成員可以從所有用戶表中讀取所有數據。

db_denydatawriter 固定資料庫角色的成員不能添加、修改或刪除資料庫內用戶表中的任何數據。

db_denydatareader 固定資料庫角色的成員不能讀取資料庫內用戶表中的任何數據。

有關資料庫級固定角色許可權的特定信息,請參閱固定資料庫角色的許可權(資料庫引擎)。

msdb 角色 msdb 資料庫中包含下表顯示的特殊用途的角色。

msdb 角色名稱及說明

db_ssisadmin
db_ssisoperator
db_ssisltser

E. 資料庫所有者身份如何設置

在資料庫-安全性-登錄名里設置。
裡面還可以設定:
角色
當幾個用戶需要在某個特定的資料庫中執行類似的動作時(這里沒有相應的Windows用戶組),就可以向該資料庫中添加一個角色(role)。資料庫角色指定了可以訪問相同資料庫對象的一組資料庫用戶。
資料庫角色的成員可以分為如下幾類:
Windows用戶組或用戶賬戶
SQL Server登錄
其他角色

F. sql中添加用戶

在資料庫添加帳戶:

在查詢分析器裡面:

use master
GO

exec sp_addlogin '要添加的用戶名','密碼' -- 添加登錄用戶
exec sp_grantdbaccess '剛才添加的用戶名' -- 給訪問許可權

還可以限制這個用戶用哪些許可權:
如:擁有,增刪改查的所有許可權:
grant select,insert,update,delete on userInfo to 'sa'

sa 用戶對 userInfo 表擁有所有的許可權

G. sql server如何給建好的資料庫添加用戶 我發現添加了用戶卻不知道怎麼設置密碼

首先,你要以管理員身份先登陸到資料庫,然後 安全性 >登錄名》新建登陸名
在彈出的窗口上輸入登陸名,選擇SQL Server身份認證,輸入密碼,想要設置比較簡單的的密碼的話,需要把強制實施密碼策略這個選項去掉。
在伺服器角色里選擇該用戶的伺服器角色,普通用戶的話,用public就行
在用戶映射里選擇該用戶可以登陸的資料庫,打上勾後,在下面選擇用戶所在資料庫的訪問許可權,根據增刪 改查的需求選擇相應的角色成員身份,
狀態里設置該用戶是否可以用連接工具登陸到資料庫服務。
再一點確定就OK了,就這么簡單。

H. sql 資料庫中syadmin固定伺服器怎麼添加角色

資料庫角色的成員可以分為如下幾類:

Windows用戶組或用戶賬戶

SQL Server登錄

其他角色

SQL Server的安全體系結構中包括了幾個含有特定隱含許可權的角色。除了資料庫擁有者創建的角色之外,還有兩類預定義的角色。這些可以創建的角色可以分為如下幾類:

固定伺服器

固定資料庫

用戶自定義

固定伺服器

由於固定伺服器是在伺服器層次上定義的,因此它們位於從屬於資料庫伺服器的資料庫外面。下表列出了所有現有的固定伺服器角色。

固定伺服器角色

說 明

sysadmin

執行SQL Server中的任何動作

serveradmin

配置伺服器設置

setupadmin

安裝復制和管理擴展過程

securityadmin

管理登錄和CREATE DATABASE的許可權以及閱讀審計

processadmin

管理SQL Server進程

dbcreator

創建和修改資料庫

diskadmin

管理磁碟文件

下面兩個系統過程用來添加或刪除固定伺服器角色成員:

sp_addsrvrolemember

sp_dropsrvrolemember

注意:您不能添加、修改或刪除固定伺服器角色。另外,只有固定伺服器角色的成員才能執行上述兩個系統過程來從角色中添加或刪除登錄賬戶。

sa登錄

sa登錄是系統管理員的登錄。在以前的SQL Server版本中不存在角色,sa登錄具有所有可能的關於系統管理工作的許可權。在SQL Server 2005中,sa登錄保持了向後兼容性。sa登錄永遠是固定伺服器角色syadmin中的成員,並且不能從該角色中刪除。

注意:只有當沒有其他方法登錄到SQL Server系統中時,再使用sa登錄。

固定伺服器角色及其許可權

在某個SQL Server系統中,每個固定伺服器角色都有其隱含的許可權。使用系統過程sp_srvrolepermission可以瀏覽每個固定伺服器角色的許可權。該系統過程的語法形式為:

sp_srvrolepermission[[@srvrolename =] 'role']

如果沒有指定role的值,那麼所有的固定伺服器角色的許可權都將顯示出來。下面的部分將討論每個固定伺服器角色的許可權。

1. sysadmin

固定伺服器角色sysadmin的成員被賦予了SQL Server系統中所有可能的許可權。例如,只有這個角色中的成員(或一個被這個角色中的成員賦予了CREATE DATABASE許可權的用戶)才能夠創建資料庫。

固定伺服器角色和sa登錄之間有著特殊的關系。sa登錄一直都是固定伺服器角色中的成員,並且不能從該角色中刪除。

2. serveradmin

固定伺服器角色serveradmin的成員可以執行如下的動作:

向該伺服器角色中添加其他登錄

運行dbcc pintable命令(從而使表常駐於主內存中)

運行系統過程sp_configure(以顯示或更改系統選項)

運行reconfigure選項(以更新系統過程sp_configure所做的所有改動)

使用shutdown命令關掉資料庫伺服器

運行系統過程sp_tableoption為用戶自定義表設置選項的值

3. setupadmin

固定伺服器角色setupadmin中的成員可以執行如下的動作:

向該伺服器角色中添加其他登錄

添加、刪除或配置鏈接的伺服器

執行一些系統過程,如sp_serveroption

4. securityadmin

固定伺服器角色securitypadmin中的成員可以執行關於伺服器訪問和安全的所有動作。這些成員可以進行如下的系統動作:

向該伺服器角色中添加其他登錄

讀取SQL Server的錯誤日誌

運行如下的系統過程:如sp_addlinkedsrvlogin、sp_addlogin、sp_defaultdb、sp_defaultlanguage、sp_denylogin、sp_droplinkedsrvlogin、sp_droplogin、sp_grantlogin、sp_helplogins、sp_remoteoption和sp_revokelogin(所有這些系統過程都與系統安全相關。)

5. processadmin

固定伺服器角色processadmin中的成員用來管理SQL Server進程,如中止用戶正在運行的查詢。這些成員可以進行如下的動作:

向該伺服器角色中添加其他登錄

執行KILL命令(以取消用戶進程)

6. dbcreator

固定伺服器角色dbcreator中的成員用來管理與資料庫創建和修改有關的所有動作。這些成員可以進行如下的動作:

向該伺服器角色中添加其他登錄

運行CREATE DATABASE和ALTER DATABASE語句

使用系統過程sp_renamedb來修改資料庫的名稱

7. diskadmin

固定伺服器角色diskadmin的成員可以進行如下與用來存儲資料庫對象的文件和文件組有關的動作:

向該伺服器角色中添加其他登錄

運行如下系統過程:sp_dmpdevice和sp_dropdevice。

運行DISK INIT語句

固定資料庫角色

固定資料庫角色在資料庫層上進行定義,因此它們存在於屬於資料庫伺服器的每個資料庫中。下表列出了所有的固定資料庫角色。

固定資料庫角色

說 明

db_owner

可以執行資料庫中技術所有動作的用戶

db_accessadmin

可以添加、刪除用戶的用戶

db_datareader

可以查看所有資料庫中用戶表內數據的用戶

db_datawriter

可以添加、修改或刪除所有資料庫中用戶表內數據的用戶

db_ddladmin

可以在資料庫中執行所有DDL操作的用戶

db_securityadmin

可以管理資料庫中與安全許可權有關所有動作的用戶

db_backoperator

可以備份資料庫的用戶(並可以發布DBCC和CHECKPOINT語句,這兩個語句一般在備份前都會被執行)

db_denydatareader

不能看到資料庫中任何數據的用戶

db_denydatawriter

不能改變資料庫中任何數據的用戶

除了上表中列出的固定資料庫角色之外,還有一種特殊的固定資料庫角色,名為public,這里將首先介紹這一角色。

public角色

public角色是一種特殊的固定資料庫角色,資料庫的每個合法用戶都屬於該角色。它為資料庫中的用戶提供了所有默認許可權。這樣就提供了一種機制,即給予那些沒有適當許可權的所有用戶以一定的(通常是有限的)許可權。public角色為資料庫中的所有用戶都保留了默認的許可權,因此是不能被刪除的。

一般情況下,public角色允許用戶進行如下的操作:

使用某些系統過程查看並顯示master資料庫中的信息

執行一些不需要一些許可權的語句(例如PRINT)

固定資料庫角色及其許可權

在資料庫中,每個固定資料庫角色都有其特定的許可權。這就意味著對於某個資料庫來說,固定資料庫角色的成員的許可權是有限的。使用系統過程sp_dbfixedrolepermission就可以查看每個固定資料庫角色的許可權。該系統過程的語法為:

sp_db.xedrolepermission [[@rolename =] 'role']

如果沒有指定role的值,那麼所有固定資料庫角色的許可權都可以顯示出來。下面的幾節將討論每個固定資料庫角色的許可權。

1. db_owner

固定資料庫角色db_owner的成員可以在特定的資料庫中進行如下的動作:

向其他固定資料庫角色中添加成員,或從其中刪除成員

運行所有的DDL語句

運行BACKUP DATABASE和BACKUP LOG語句

使用CHECKPOINT語句顯式地啟動檢查點進程

運行下列dbcc命令:dbcc checkalloc、dbcc checkcatalog、dbcc checkdb、dbcc updateusage

授予、取消或剝奪每一個資料庫對象上的下列許可權:SELECT、INSERT、UPDATE、DELETE和REFERENCES

使用下列系統過程向資料庫中添加用戶或角色:sp_addapprole、sp_addrole、sp_addrolemember、sp_approlepassword、sp_changeobjectowner、sp_dropapprole、sp_droprole、sp_droprolemember、sp_dropuser、sp_grantdbaccess

使用系統過程sp_rename為任何資料庫對象重新命名

2. db_accessadmin

固定資料庫角色db_accessadmin的成員可以執行與資料庫訪問有關的所有動作。這些角色可以在具體的資料庫中執行下列操作:

運行下列系統過程:sp_addalias、sp_dropalias、sp_dropuser、sp_grantdbacess、sp_revokedbaccess

為Windows用戶賬戶、Windows組和SQL Server登錄添加或刪除訪問

3. dbdatareader

固定資料庫角色dbdatareader的成員對資料庫中的資料庫對象(表或視圖)具有SELECT許可權。然而,這些成員不能把這個許可權授予其他任何用戶或角色。(這個限制對REVOKE語句來說同樣成立。)

4. dbdatawriter

固定資料庫角色dbdatawriter的成員對資料庫中的資料庫對象(表或視圖)具有INSERT、UPDATE和DELETE許可權。然而,這些成員不能把這個許可權授予其他任何用戶或角色。(這個限制對REVOKE語句來說也同樣成立。)

5. db_ddladmin

固定資料庫角色db_ddladmin的成員可以進行如下的動作:

運行所有DDL語句

對任何錶上授予REFERENCESE許可權

使用系統過程sp_procoption和sp_recompile來修改任何存儲過程的結構

使用系統過程sp_rename為任何資料庫對象重命名

使用系統過程sp_tableoption和sp_changeobjectowner分別修改表的選項和任何資料庫對象的擁有者

6. db_securityadmin

固定資料庫角色db_securityadmin的成員可以管理資料庫中的安全。這些成員可以進行如下的動作:

運行與安全有關的所有Transact-SQL語句(GRANT、DENY和REVOKE)

運行以下系統過程:sp_addapprole、sp_addrole、sp_addrolemember、sp_approlepassword、sp_changeobjectowner、sp_dropapprole、sp_droprole、sp_droprolemember

7. db_backupoperator

固定資料庫角色db_backupoperator的成員可以管理資料庫備份的過程。這些成員可以進行如下動作:

運行BACKUP DATABASE和BACKUP LOG語句

用CHECKPOINT語句顯式地啟動檢查點進程

運行如下dbcc命令:dbcc checkalloc、dbcc checkcatalog、dbcc checkdb、dbcc updateusage

8. db_denydatareader和db_denydatawriter

顧名思義,固定資料庫角色db_denydatareader的成員對資料庫中的資料庫對象(表或視圖)沒有SELECT許可權。如果資料庫中含有敏感數據並且其他用戶不能讀取這些數據,那麼就可以使用這個角色。

固定資料庫角色db_denydatawriter的成員對資料庫中的任何資料庫對象(表或視圖)沒有INSERT、UPDATE和DELETE許可權。

I. 將用戶添加到不同的資料庫角色中,語句怎麼寫

--把角色賦予指定賬戶
grantrole_nametouser_name;
--刪除角色
droprolerole_name;
--看看這是不是你要的
--查看用戶擁有許可權
SELECT*FROMuser_role_privsWHEREusername='大寫';

J. SQL SERVER要使一個計算機用戶成為資料庫用戶,基本操作步驟是什麼

1.創建角色
2.創建用戶
3.付給用戶角色