當前位置:首頁 » 數據倉庫 » 資料庫角色和許可權管理
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫角色和許可權管理

發布時間: 2022-07-04 18:59:51

『壹』 關於資料庫的許可權管理問題

這兩個命令其實有很大的區別,我舉個例子方便說明吧:
設資料庫用戶帳戶 userA 擁有 employees 表的 select 許可權,同時又屬於 db_datareader 資料庫角色;
如果使用 revoke select on employees from userA; 語句,僅僅是取消了顯示授予用戶帳戶的 select 許可權;userA 同樣可以通過 db_datareader 角色獲得讀取 employees 表的許可權;
而如果使用 deny select on employees to userA; 語句,則可以徹底禁止 userA 讀取 employees 表,因為在評估許可權時,deny 優先於通過其他任何方式獲取的許可權。

『貳』 怎樣設置sql server 2008資料庫的使用者和許可權

首先打開資料庫,並以windows身份驗證模式扥牢固資料庫;

然後在左側的【對象資源管理器中】展開【安全性】節點,滑鼠右鍵點擊節點中的【登錄名】,在彈出的菜單中單擊【新建登錄名】

1. 在登錄名右側的文本框中輸入新建的管理員賬號名稱;

2. 一對單選按鈕組中,選擇Sql Server 身份驗證,並輸入登錄密碼;

3. 勾選強制實施密碼策略復選框;(密碼策略一般是指加強用戶登錄的密碼方式例如:可能需要至少8個以上字元,或在嘗試若干登陸失敗後該賬號即被禁止登陸等等!如果覺得麻煩可以不必勾選!)。

4. 不勾選強制密碼過期;(如果勾選該項的話,則每一次登陸後系統都會提示用戶必須更改現有密碼,如非特殊需求,不建議勾選此項!)。

然後繼續點選左側選項頁下的【伺服器角色】;

在右側的伺服器角色面板中,勾選 public 和 sysadmin 兩項!

注意:如果建立的賬號不需要具備系統管理員的許可權時,則不要勾選 sysadmin 項!

繼續點選左側選項頁中的【用戶映射】。

在右側的面板中勾選該賬號可以進行管理操作的資料庫名稱!並在該面板下面的【資料庫角色成員身份】中勾選 db_owner 項!

注意:如果給一個無系統管理許可權的賬號指定管理一個資料庫時,則一定要勾選 db_owner 項!否則該賬號則無法看到該資料庫中的任何數據表!

選後點選【選擇頁】下的【狀態】選項進行設置

『叄』 資料庫中用戶與角色許可權管理各有什麼作用

用戶(User)只針對某個人管理;
角色(Role)可以針對一批人(該角色下的所有用戶)實施統一的管理策略。

通常,高效的管理就是:
1、先對角色管理;
2、再對角色中某個特例用戶進行管理。

『肆』 資料庫的固定伺服器角色有8種,他們分別都有什麼許可權請行家指點

8的等級最高,相當於sqlserver的sa賬戶和oracle的sysadmin,可以做一切操作,包括以下七種角色,事實上一般以下七種角色的許可權都是他來指派的,企業中一般嚴禁這個賬戶登陸的,因為一旦誤操作將會造成災難性損失。
1管理資料庫大小,數據空間大小以及數據日誌大小等
2擁有建立資料庫的許可權
3對已經分配磁碟空間進行分配
4可以管理進程,比如剔除一些非法進程
5可以管理連接許可權,用戶許可權等。
6這個可以啟動伺服器,對伺服器的屬性進行分配(連接池、cpu、內存空間等),貌似是sqlserver特有
7這個角色很多資料庫是沒有的,oracle8以前好像也是沒有的,可以安裝資料庫以及刪除資料庫(在非常安全控制地方這種賬戶是沒有連接許可權的,也就是說只能安裝,但是不能讀取裡面的數據)

這些許可權各不相同,所以很難說是對伺服器的還是資料庫的,比如7這種,根本說不上是不是伺服器級別的,因為它只有安裝許可權,可以認為是系統級別的,事實上,只有sqlserver存在伺服器和資料庫的區別,一般的諸如db2和oracle中的所謂伺服器指的是那台機器而不是一個sqlserver意義上的伺服器,具體情況具體對待

其實主要角色不止這些,還有諸如備份管理員backupadmin,數據清理員英文忘記了等等。

『伍』 MySQL 資料庫,如何分角色許可權建表

角色一直存在各個資料庫中,比如 SQL Server、Oracle 等,MySQL 自從版本 8.0 release,引入了角色這個概念。


角色的概念

角色就是一組針對各種資料庫許可權的集合。比如,把一個角色分配給一個用戶,那這個用戶就擁有了這個角色包含的所有許可權。一個角色可以分配給多個用戶,另外一個用戶也可以擁有多個角色,兩者是多對多的關系。不過 MySQL 角色目前還沒有提供類似於其他資料庫的系統預分配的角色。比如某些資料庫的 db_owner、 db_datareader 、 db_datawriter 等等。那接下來我分幾個方面,來示例說明角色的使用以及相關注意事項。

示例 1:一個完整角色的授予步驟

用管理員創建三個角色:db_owner, db_datareader, db_datawriter

  • mysql> create role db_owner,db_datareader,db_datawriter;

  • Query OK, 0 rows affected (0.02 sec)

  • mysql> grant all on ytt_new.* to db_owner;

  • Query OK, 0 rows affected (0.01 sec)

  • mysql> grant select on ytt_new.* to db_datareader;

  • Query OK, 0 rows affected (0.01 sec)

  • mysql> grant insert,delete,update on ytt_new.* to db_datawriter;

  • Query OK, 0 rows affected (0.01 sec)

  • 創建三個普通用戶,分別為 ytt1、ytt2、ytt3。mysql> create user ytt1 identified by 'ytt',ytt2 identified by 'ytt',ytt3 identified by 'ytt';Query OK, 0 rows affected (0.01 sec)

  • 分別授予這三個用戶對應的角色。
  • -- 授權角色

  • mysql> grant db_owner to ytt1;

  • Query OK, 0 rows affected (0.02 sec)

  • -- 激活角色

  • mysql> set default role db_owner to ytt1;

  • Query OK, 0 rows affected (0.00 sec)

  • mysql> grant db_datareader to ytt2;

  • Query OK, 0 rows affected (0.01 sec)

  • mysql> set default role db_datareader to ytt2;

  • Query OK, 0 rows affected (0.01 sec)

  • mysql> grant db_datawriter to ytt3;

  • Query OK, 0 rows affected (0.01 sec)

  • mysql> set default role db_datawriter to ytt3;

  • Query OK, 0 rows affected (0.01 sec)

  • 以上是角色授予的一套完整步驟。那上面有點非常規的地方是激活角色這個步驟。MySQL 角色在創建之初默認是沒有激活的,也就是說創建角色,並且給一個用戶特定的角色,這個用戶其實並不能直接使用這個角色,除非激活了才可以。
  • 示例 2:一個用戶可以擁有多個角色

  • -- 用管理員登錄並且創建用戶

  • mysql> create user ytt4 identified by 'ytt';

  • Query OK, 0 rows affected (0.00 sec)

  • -- 把之前的三個角色都分配給用戶ytt4.

  • mysql> grant db_owner,db_datareader,db_datawriter to ytt4;

  • Query OK, 0 rows affected (0.01 sec)

  • -- 激活用戶ytt4的所有角色.

  • mysql> set default role all to ytt4;

  • Query OK, 0 rows affected (0.02 sec)

  • -- ytt4 用戶登錄

  • root@ytt-pc:/var/lib/mysql# mysql -uytt4 -pytt -P3304 -hytt-pc

  • ...

  • -- 查看當前角色列表

  • mysql> select current_role();

  • +--------------------------------------------------------+

  • | current_role() |

  • +--------------------------------------------------------+

  • | `db_datareader`@`%`,`db_datawriter`@`%`,`db_owner`@`%` |

  • +--------------------------------------------------------+

  • 1 row in set (0.00 sec)

  • -- 簡單創建一張表並且插入記錄, 檢索記錄,完了刪掉這張表

  • mysql> use ytt_new

  • Database changed

  • mysql> create table t11(id int);

  • Query OK, 0 rows affected (0.05 sec)

  • mysql> insert into t11 values (1);

  • Query OK, 1 row affected (0.02 sec)

  • mysql> select * from t11;

  • +------+

  • | id |

  • +------+

  • | 1 |

  • +------+

  • 1 row in set (0.00 sec)

  • mysql> drop table t11;

  • Query OK, 0 rows affected (0.04 sec)

  • 示例 3:用戶在當前 session 里角色互換
  • 其實意思是說,用戶連接到 MySQL 伺服器後,可以切換當前的角色列表,比如由 db_owner 切換到 db_datareader。

  • -- 還是之前的用戶ytt4, 切換到db_datareader

  • mysql> set role db_datareader;

  • Query OK, 0 rows affected (0.00 sec)

  • mysql> select current_role();

  • +---------------------+

  • | current_role() |

  • +---------------------+

  • | `db_datareader`@`%` |

  • +---------------------+

  • 1 row in set (0.00 sec)

  • -- 切換後,沒有許可權創建表

  • mysql> create table t11(id int);

  • ERROR 1142 (42000): CREATE command denied to user 'ytt4'@'ytt-pc' for table 't11'

  • -- 切換到 db_owner,恢復所有許可權。

  • mysql> set role db_owner;

  • Query OK, 0 rows affected (0.00 sec)

  • mysql> create table t11(id int);

  • Query OK, 0 rows affected (0.04 sec)

  • 示例 4:關於角色的兩個參數

  • activate_all_roles_on_login:是否在連接 MySQL 服務時自動激活角色mandatory_roles:強制所有用戶默認角色
  • -- 用管理員連接MySQL,

  • -- 設置默認激活角色

  • mysql> set global activate_all_roles_on_login=on;

  • Query OK, 0 rows affected (0.00 sec)

  • -- 設置強制給所有用戶賦予角色db_datareader

  • mysql> set global mandatory_roles='db_datareader';

  • Query OK, 0 rows affected (0.00 sec)

  • -- 創建用戶ytt7.

  • mysql> create user ytt7;

  • Query OK, 0 rows affected (0.01 sec)

  • -- 用 ytt7登錄資料庫

  • root@ytt-pc:/var/lib/mysql# mysql -uytt7 -P3304 -hytt-pc

  • ...

  • mysql> show grants;

  • +-------------------------------------------+

  • | Grants for ytt7@% |

  • +-------------------------------------------+

  • | GRANT USAGE ON *.* TO `ytt7`@`%` |

  • | GRANT SELECT ON `ytt_new`.* TO `ytt7`@`%` |

  • | GRANT `db_datareader`@`%` TO `ytt7`@`%` |

  • +-------------------------------------------+

  • 3 rows in set (0.00 sec)

  • 示例 5 :create role 和 create user 都有創建角色許可權,兩者有啥區別?

  • 以下分別創建兩個用戶 ytt8、ytt9,一個給 create role,一個給 create user 許可權。
  • -- 管理員登錄,創建用戶ytt8,ytt9.

  • mysql> create user ytt8,ytt9;

  • Query OK, 0 rows affected (0.01 sec)

  • mysql> grant create role on *.* to ytt8;

  • Query OK, 0 rows affected (0.02 sec)

  • mysql> grant create user on *.* to ytt9;

  • Query OK, 0 rows affected (0.01 sec)

  • -- 用ytt8 登錄,

  • root@ytt-pc:/var/lib/mysql# mysql -uytt8 -P3304 -hytt-pc

  • ...

  • mysql> create role db_test;

  • Query OK, 0 rows affected (0.02 sec)

  • -- 可以創建角色,但是不能創建用戶

  • mysql> create user ytt10;

  • ERROR 1227 (42000): Access denied; you need (at least one of) the CREATE USER privilege(s) for this operation

  • mysql> q

  • Bye

  • -- 用ytt9 登錄

  • root@ytt-pc:/var/lib/mysql# mysql -uytt9 -P3304 -hytt-pc

  • ...

  • -- 角色和用戶都能創建

  • mysql> create role db_test2;

  • Query OK, 0 rows affected (0.02 sec)

  • mysql> create user ytt10;

  • Query OK, 0 rows affected (0.01 sec)

  • mysql> q

  • Bye

  • 那這里其實看到 create user 包含了 create role,create user 即可以創建用戶,也可以創建角色。
  • 示例 6:MySQL 用戶也可以當角色來用

  • -- 用管理員登錄,創建用戶ytt11,ytt12.

  • mysql> create user ytt11,ytt12;

  • Query OK, 0 rows affected (0.01 sec)

  • mysql> grant select on ytt_new.* to ytt11;

  • Query OK, 0 rows affected (0.01 sec)

  • -- 把ytt11普通用戶的許可權授予給ytt12

  • mysql> grant ytt11 to ytt12;

  • Query OK, 0 rows affected (0.01 sec)

  • -- 來查看 ytt12的許可權,可以看到擁有了ytt11的許可權

  • mysql> show grants for ytt12;

  • +-----------------------------------+

  • | Grants for ytt12@% |

  • +-----------------------------------+

  • | GRANT USAGE ON *.* TO `ytt12`@`%` |

  • | GRANT `ytt11`@`%` TO `ytt12`@`%` |

  • +-----------------------------------+

  • 2 rows in set (0.00 sec)

  • -- 在細化點,看看ytt12擁有哪些具體的許可權

  • mysql> show grants for ytt12 using ytt11;

  • +--------------------------------------------+

  • | Grants for ytt12@% |

  • +--------------------------------------------+

  • | GRANT USAGE ON *.* TO `ytt12`@`%` |

  • | GRANT SELECT ON `ytt_new`.* TO `ytt12`@`%` |

  • | GRANT `ytt11`@`%` TO `ytt12`@`%` |

  • +--------------------------------------------+

  • 3 rows in set (0.00 sec)

  • 示例 7:角色的撤銷

  • 角色撤銷和之前許可權撤銷類似。要麼 revoke,要麼刪除角色,那這個角色會從所有擁有它的用戶上移除。
  • -- 用管理員登錄,移除ytt2的角色

  • mysql> revoke db_datareader from ytt2;

  • Query OK, 0 rows affected (0.01 sec)

  • -- 刪除所有角色

  • mysql> drop role db_owner,db_datareader,db_datawriter;

  • Query OK, 0 rows affected (0.01 sec)

  • -- 對應的角色也從ytt1上移除掉了

  • mysql> show grants for ytt1;

  • +----------------------------------+

  • | Grants for ytt1@% |

  • +----------------------------------+

  • | GRANT USAGE ON *.* TO `ytt1`@`%` |

  • +----------------------------------+

  • 1 row in set (0.00 sec)

至此,我分了 7 個目錄說明了角色在各個方面的使用以及注意事項,希望對大家有幫助。

『陸』 資料庫菜鳥問題:請教sql server裡面的角色和許可權之間關系

伺服器角色
sysadmin:執行任何活動
dbcreator:可以創建,更改資料庫
serveradmin:可以更改伺服器范圍的配置選項個關閉伺服器
securityadmin:管理和審核登陸帳戶
processadmin:可以終止SQL SERVER實例進程

角色就想WINDOWS中的組一樣,將帳戶加入到某種角色,同種角色中的帳戶擁有的許可權都一樣

『柒』 PostgreSQL的用戶,角色跟許可權管理怎麼解決

Pg許可權分為兩部分,一部分是「系統許可權」或者資料庫用戶的屬性,可以授予role或user(兩者區別在於login許可權);一部分為資料庫對象上的操作許可權。對超級用戶不做許可權檢查,其它走acl。對於資料庫對象,開始只有所有者和超級用戶可以做任何操作,其它走acl。在pg里,對acl模型做了簡化,組和角色都是role,用戶和角色的區別是角色沒有login許可權。

可以用下面的命令創建和刪除角色,
CREATE ROLE name;
DROP ROLE name;
為了方便,也可以在 shell 命令上直接調用程序 createuser 和 dropuser,這些工具對相應命令提供了封裝:
createuser name
dropuser name

資料庫對象上的許可權有:SELECT,INSERT, UPDATE,DELETE,RULE, REFERENCES,TRIGGER,CREATE, TEMPORARY,EXECUTE,和 USAGE等,具體見下面定義

typedefuint32AclMode; /* a bitmask of privilege bits */

#define ACL_INSERT (1<<0) /* forrelations */
#defineACL_SELECT (1<<1)
#defineACL_UPDATE (1<<2)
#defineACL_DELETE (1<<3)
#defineACL_TRUNCATE (1<<4)
#defineACL_REFERENCES (1<<5)
#defineACL_TRIGGER (1<<6)
#defineACL_EXECUTE (1<<7) /* for functions */
#defineACL_USAGE (1<<8) /* for languages, namespaces, FDWs, and
* servers */
#defineACL_CREATE (1<<9) /* for namespaces and databases */
#defineACL_CREATE_TEMP (1<<10) /* for databases */
#defineACL_CONNECT (1<<11) /* for databases */
#defineN_ACL_RIGHTS 12 /* 1plus the last 1<
#defineACL_NO_RIGHTS 0
/*Currently, SELECT ... FOR UPDATE/FOR SHARE requires UPDATE privileges */
#defineACL_SELECT_FOR_UPDATE ACL_UPDATE

我們可以用特殊的名字 PUBLIC 把對象的許可權賦予系統中的所有角色。 在許可權聲明的位置上寫 ALL,表示把適用於該對象的所有許可權都賦予目標角色。
beigang=# grantall on schema csm_ca to public;
GRANT
beigang=# revoke all on schema csm_ca frompublic;
REVOKE
beigang=#

每種對象的all許可權定義如下:
/*
* Bitmasks defining "allrights" for each supported object type
*/
#defineACL_ALL_RIGHTS_COLUMN (ACL_INSERT|ACL_SELECT|ACL_UPDATE|ACL_REFERENCES)
#defineACL_ALL_RIGHTS_RELATION (ACL_INSERT|ACL_SELECT|ACL_UPDATE|ACL_DELETE|ACL_TRUNCATE|ACL_REFERENCES|ACL_TRIGGER)
#defineACL_ALL_RIGHTS_SEQUENCE (ACL_USAGE|ACL_SELECT|ACL_UPDATE)
#defineACL_ALL_RIGHTS_DATABASE (ACL_CREATE|ACL_CREATE_TEMP|ACL_CONNECT)
#define ACL_ALL_RIGHTS_FDW (ACL_USAGE)
#defineACL_ALL_RIGHTS_FOREIGN_SERVER (ACL_USAGE)
#defineACL_ALL_RIGHTS_FUNCTION (ACL_EXECUTE)
#defineACL_ALL_RIGHTS_LANGUAGE (ACL_USAGE)
#defineACL_ALL_RIGHTS_LARGEOBJECT (ACL_SELECT|ACL_UPDATE)
#defineACL_ALL_RIGHTS_NAMESPACE (ACL_USAGE|ACL_CREATE)
#defineACL_ALL_RIGHTS_TABLESPACE (ACL_CREATE)

用戶的屬性可參見下圖:
視圖 pg_roles提供訪問資料庫角色有關信息的介面。 它只是一個 pg_authid 表的公開可讀部分的視圖,把口令欄位用空白填充了。
Table 42-39.pg_roles欄位
名字
類型
引用
描述
rolname
name

角色名
rolsuper
bool

有超級用戶許可權的角色
rolcreaterole
bool

可以創建更多角色的角色
rolcreatedb
bool

可以創建資料庫的角色
rolcatupdate
bool

可以直接更新系統表的角色。(除非這個欄位為真,否則超級用戶也不能幹這個事情。)
rolcanlogin
bool

可以登錄的角色,也就是說,這個角色可以給予初始化會話認證的標識符。
rolpassword
text

不是口令(總是 ********)
rolvalintil
timestamptz

口令失效日期(只用於口令認證);如果沒有失效期,為 NULL
rolconfig
text[]

運行時配置變數的會話預設

『捌』 資料庫角色成員身份 哪個是管理員許可權

資料庫級別的角色名稱及說明
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

『玖』 SQL資料庫的角色的定義,分類及角色的許可權分配操作

角色是一個強大的工具,使您得以將用戶集中到一個單元中,然後對該單元應用許可權。對一個角色授予、拒絕或廢除的許可權也適用於該角色的任何成員。可以建立一個角色來代表單位中一類工作人員所執行的工作,然後給這個角色授予適當的許可權。當工作人員開始工作時,只須將他們添加為該角色成員,當他們離開工作時,將他們從該角色中刪除。而不必在每個人接受或離開工作時,反復授予、拒絕和廢除其許可權。許可權在用戶成為角色成員時自動生效。

Microsoft® Windows NT® 和 Windows® 2000 組的使用方式與角色很相似。有關更多信息,請參見組。

如果根據工作職能定義了一系列角色,並給每個角色指派了適合這項工作的許可權,則很容易在資料庫中管理這些許可權。之後,不用管理各個用戶的許可權,而只須在角色之間移動用戶即可。如果工作職能發生改變,則只須更改一次角色的許可權,並使更改自動應用於角色的所有成員,操作比較容易。

在 Microsoft® SQL Server™ 2000 和 SQL Server 7.0 版中,用戶可屬於多個角色。

以下腳本說明登錄、用戶和角色的添加,並為角色授予許可權。

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 教授提供了更新學生成績的許可權,而學生 Betty 和 Ralph 只能選擇他們自己的成績。Diane 因同時教兩個班,所以添加到兩個角色中。ProfessorGradeView 視圖應將教授限制在自己班學生的行上,而 StudentGradeView 應限制學生只能選擇自己的成績。

SQL Server 2000 和 SQL Server 7.0 版在安裝過程中定義幾個固定角色。可以在這些角色中添加用戶以獲得相關的管理許可權。下面是伺服器范圍內的角色。

固定伺服器角色
描述

sysadmin
可以在 SQL Server 中執行任何活動。

serveradmin
可以設置伺服器范圍的配置選項,關閉伺服器。

setupadmin
可以管理鏈接伺服器和啟動過程。

securityadmin
可以管理登錄和 CREATE DATABASE 許可權,還可以讀取錯誤日誌和更改密碼。

processadmin
可以管理在 SQL Server 中運行的進程。

dbcreator
可以創建、更改和除去資料庫。

diskadmin
可以管理磁碟文件。

bulkadmin
可以執行 BULK INSERT 語句。

可以從 sp_helpsrvrole 獲得固定伺服器角色的列表,可以從 sp_srvrolepermission 獲得每個角色的特定許可權。

每個資料庫都有一系列固定資料庫角色。雖然每個資料庫中都存在名稱相同的角色,但各個角色的作用域只是在特定的資料庫內。例如,如果 Database1 和 Database2 中都有叫 UserX 的用戶 ID,將 Database1 中的 UserX 添加到 Database1 的 db_owner 固定資料庫角色中,對 Database2 中的 UserX 是否是 Database2 的 db_owner 角色成員沒有任何影響。

固定資料庫角色
描述

db_owner
在資料庫中有全部許可權。

db_accessadmin
可以添加或刪除用戶 ID。

db_securityadmin
可以管理全部許可權、對象所有權、角色和角色成員資格。

db_ddladmin
可以發出 ALL DDL,但不能發出 GRANT、REVOKE 或 DENY 語句。

db_backupoperator
可以發出 DBCC、CHECKPOINT 和 BACKUP 語句。

db_datareader
可以選擇資料庫內任何用戶表中的所有數據。

db_datawriter
可以更改資料庫內任何用戶表中的所有數據。

db_denydatareader
不能選擇資料庫內任何用戶表中的任何數據。

db_denydatawriter
不能更改資料庫內任何用戶表中的任何數據。

可以從 sp_helpdbfixedrole 獲得固定資料庫角色的列表,可以從 sp_dbfixedrolepermission 獲得每個角色的特定許可權。

資料庫中的每個用戶都屬於 public 資料庫角色。如果想讓資料庫中的每個用戶都能有某個特定的許可權,則將該許可權指派給 public 角色。如果沒有給用戶專門授予對某個對象的許可權,他們就使用指派給 public 角色的許可權。

『拾』 如何設置資料庫的許可權

1、首先用管理員進入資料庫級中的安全性,點擊登錄名,點擊新建登錄名。