1. SQL試題 解答題: 角色有哪幾種,角色和用戶有哪些關系
--用戶指的是資料庫用戶,單純的用戶是沒有任何許可權的,需要給相應的角色才可以
--不明白可以隨時來問我,希望採納
SqlServer固定伺服器角色:
1、bulkadmin伺服器級許可權已授予:ADMINISTERBULKOPERATIONS
2、dbcreator伺服器級許可權已授予:CREATEDATABASE
3、diskadmin伺服器級許可權已授予:ALTERRESOURCESSqlServer2005固定伺服器角色:
4、processadmin伺服器級許可權已授予:ALTERANYCONNECTION、ALTERSERVERSTATE
5、securityadmin伺服器級許可權已授予:ALTERANYLOGIN6、serveradmin伺服器級許可權已授予:ALTERANYENDPOINT、ALTERRESOURCES、ALTERSERVERSTATE、ALTERSETTINGS、SHUTDOWN、VIEWSERVERSTATE
7、setupadmin伺服器級許可權已授予:固定伺服器角色:
8、sysadmin伺服器級許可權已使用GRANT選項授予:CONTROLSERVER
2. SQL Server 2000的角色分哪兩種各自的功能是什麼
SQL SERVER 2000 使用哪三種類型的角色 ?每種角色的作用是什麼? 固定的伺服器角色 固定的資料庫角色 應用程序角色 難道是這3種么?
3. sql server 固定伺服器角色有哪些
8的等級最高,相當於sqlserver的sa賬戶和oracle的sysadmin,可以做一切操作,包括以下七種角色,事實上一般以下七種角色的許可權都是他來指派的,企業中一般嚴禁這個賬戶登陸的,因為一旦誤操作將會造成災難性損失。
1管理資料庫大小,數據空間大小以及數據日誌大小等
2擁有建立資料庫的許可權
3對已經分配磁碟空間進行分配
4可以管理進程,比如剔除一些非法進程
5可以管理連接許可權,用戶許可權等。
6這個可以啟動伺服器,對伺服器的屬性進行分配(連接池、cpu、內存空間等),貌似是sqlserver特有
7這個角色很多資料庫是沒有的,比如sqlserver就是沒有的,oracle8以前好像也是沒有的,可以安裝資料庫以及刪除資料庫(在非常安全控制地方這種賬戶是沒有連接許可權的,也就是說只能安裝,但是不能讀取裡面的數據)
這些許可權各不相同,所以很難說是對伺服器的還是資料庫的,比如7這種,根本說不上是不是伺服器級別的,因為它只有安裝許可權,可以認為是系統級別的,事實上,只有sqlserver存在伺服器和資料庫的區別,一般的諸如db2和oracle中的所謂伺服器指的是那台機器而不是一個sqlserver意義上的伺服器,具體情況具體對待
其實主要角色不止這些,還有諸如備份管理員backupadmin,數據清理員英文忘記了等等。
4. 在SQL Server 里,登錄名,用戶,角色,許可權,有啥聯系
登錄名
就是用戶名,同一個資料庫中含有多個用戶;
【用戶】與【角色】還有【許可權】是「多對多」的關系,一個用戶可以有多個角色,也可以被賦予多個許可權;同一個角色可以賦給多個用戶,也可以含有多個許可權;同一個許可權也可以賦給多個用戶和角色;
說道區別:你可以把
登錄名比作一個人的名字,而用戶是這個人,角色就是這個在不同情況下所具有的職能的總和,而許可權就是做各種事的能力。
5. sqlserver中,用戶和角色有什麼區別
用戶是具體到某一個賬戶個體,角色是某一類賬戶的集合。
比如說倉庫管理員,這是一個角色,他們管理著倉庫;
但是可能公司里有好幾個倉庫管理員,他們是不同的用戶;
在資料庫里,角色代表一系列許可權的集合,如果將某個角色分配給某個用戶,則這個用戶就擁有了這一系列的許可權。
這樣做的好處是不必為單個用戶分配不同的許可權;假如公司新招庫管員一名,直接賦予他庫管員的角色,他就有了管理倉庫的一系列許可權,如果這個人要調換到銷售部門去,那麼直接給他換個角色就解決了許可權的問題。
資料庫下同理,有些用戶只能查詢某些表,而有些用戶又只能執行SP,這種許可權就需要角色來管理。
6. MySQL8.0里的角色功能是什麼
角色一直存在各個資料庫中,比如 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)
-- 授權角色
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)
示例 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)
其實意思是說,用戶連接到 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:關於角色的兩個參數
-- 用管理員連接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.
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
示例 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:角色的撤銷
-- 用管理員登錄,移除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 伺服器角色和資料庫角色有什麼區別
顧名思義!
伺服器角色就是針對整個資料庫伺服器設定的角色和許可權。
資料庫角色就是針對某個特定資料庫設定的角色和許可權。
給你舉個例子:
setupadmin
該角色僅限於管理鏈接伺服器和啟動過程。這個是針對整個伺服器許可權的角色。
db_datareader
能夠在資料庫中所有的用戶表上執行SELECT語句,這個就是資料庫角色,是針對特定某個資料庫的許可權設置,只對該特定資料庫有效
8. SQL SERVER 2005 使用哪三種類型的角色 每種角色的作用是什麼
server
role:在SQL
Server伺服器級別的角色。
database
role:
在SQL
Server資料庫級別的角色。
application
role:用戶設置的application連接後的角色。
9. sql server里 伺服器角色都是什麼意思
各個角色是對應不同許可權的,sql server中有很多許可權,可以把這些許可權組合或單獨賦給各個角色,從而使不同角色的用戶的許可權不同,你列出的都是內置角色。你看看下面這些對你有沒有幫助,希望你解決你的問題。
為便於管理資料庫中的許可權,SQL Server 提供了若干「角色」,這些角色是用於分組其他主體的安全主體。它們類似於 Microsoft Windows 操作系統中的組。資料庫級角色的許可權作用域為資料庫范圍。
SQL Server 中有兩種類型的資料庫級角色:資料庫中預定義的「固定資料庫角色」和您可以創建的「靈活資料庫角色」。
固定資料庫角色是在資料庫級別定義的,並且存在於每個資料庫中。db_owner 和 db_securityadmin 資料庫角色的成員可以管理固定資料庫角色成員身份。但是,只有 db_owner 資料庫角色的成員能夠向 db_owner 固定資料庫角色中添加成員。msdb 資料庫中還有一些特殊用途的固定資料庫角色。
您可以向資料庫級角色中添加任何資料庫帳戶和其他 SQL Server 角色。固定資料庫角色的每個成員都可向同一個角色添加其他登錄名。
重要提示:
請不要將靈活資料庫角色添加為固定角色的成員。這會導致意外的許可權升級。
下表顯示了固定資料庫級角色及其能夠執行的操作。所有資料庫中都有這些角色。
資料庫級別的角色名稱 說明
db_owner
db_owner 固定資料庫角色的成員可以執行資料庫的所有配置和維護活動,還可以刪除資料庫。
db_securityadmin
db_securityadmin 固定資料庫角色的成員可以修改角色成員身份和管理許可權。向此角色中添加主體可能會導致意外的許可權升級。
db_accessadmin
db_accessadmin 固定資料庫角色的成員可以為 Windows 登錄名、Windows 組和 SQL Server 登錄名添加或刪除資料庫訪問許可權。
db_backupoperator
db_backupoperator 固定資料庫角色的成員可以備份資料庫。
db_ddladmin
db_ddladmin 固定資料庫角色的成員可以在資料庫中運行任何數據定義語言 (DDL) 命令。
db_datawriter
db_datawriter 固定資料庫角色的成員可以在所有用戶表中添加、刪除或更改數據。
db_datareader
db_datareader 固定資料庫角色的成員可以從所有用戶表中讀取所有數據。
db_denydatawriter
db_denydatawriter 固定資料庫角色的成員不能添加、修改或刪除資料庫內用戶表中的任何數據。
db_denydatareader
db_denydatareader 固定資料庫角色的成員不能讀取資料庫內用戶表中的任何數據。
有關資料庫級固定角色許可權的特定信息,請參閱固定資料庫角色的許可權(資料庫引擎)。
msdb 角色
msdb 資料庫中包含下表顯示的特殊用途的角色。
msdb 角色名稱 說明
db_ssisadmin
db_ssisoperator
db_ssisltser
這些資料庫角色的成員可以管理和使用 SSIS。從早期版本升級的 SQL Server 實例可能包含使用 Data Transformation Services (DTS)(而不是 SSIS)命名的舊版本角色。有關詳細信息,請參閱 使用 Integration Services 角色。
dc_admin
dc_operator
dc_proxy
這些資料庫角色的成員可以管理和使用數據收集器。有關詳細信息,請參閱數據收集器的安全性。
PolicyAdministratorRole
db_ PolicyAdministratorRole 資料庫角色的成員可以對基於策略的管理策略和條件執行所有配置和維護活動。有關詳細信息,請參閱使用基於策略的管理來管理伺服器。
ServerGroupAdministratorRole
ServerGroupReaderRole
這些資料庫角色的成員可以管理和使用注冊的伺服器組。有關詳細信息,請參閱創建伺服器組。
重要提示:
db_ssisadmin 角色和 dc_admin 角色的成員也許可以將其許可權提升到 sysadmin。之所以會發生此許可權提升,是因為這些角色可以修改 Integration Services 包,而 SQL Server 可以使用 SQL Server 代理的 sysadmin 安全上下文來執行 Integration Services 包。若要防止在運行維護計劃、數據收集組和其他 Integration Services 包時出現此許可權提升,請將運行包的 SQL Server 代理作業配置為使用擁有有限許可權的代理帳戶,或只將 sysadmin 成員添加到 db_ssisadmin 和 dc_admin 角色。
使用伺服器級角色
下表說明了用於伺服器級角色的命令、視圖和函數。
功能 類型 說明
sp_helpdbfixedrole (Transact-SQL)
元數據
返回固定資料庫角色的列表。
sp_dbfixedrolepermission (Transact-SQL)
元數據
顯示固定資料庫角色的許可權。
sp_helprole (Transact-SQL)
元數據
返回當前資料庫中有關角色的信息。
sp_helprolemember (Transact-SQL)
元數據
返回有關當前資料庫中某個角色的成員的信息。
sys.database_role_members (Transact-SQL)
元數據
為每個資料庫角色的每個成員返回一行。
IS_MEMBER (Transact-SQL)
元數據
指示當前用戶是否為指定 Microsoft Windows 組或 Microsoft SQL Server 資料庫角色的成員。
CREATE ROLE (Transact-SQL)
命令
在當前資料庫中創建新的資料庫角色。
ALTER ROLE (Transact-SQL)
命令
更改資料庫角色的名稱。
DROP ROLE (Transact-SQL)
命令
從資料庫中刪除角色。
sp_addrole (Transact-SQL)
命令
在當前資料庫中創建新的資料庫角色。
sp_droprole (Transact-SQL)
命令
從當前資料庫中刪除資料庫角色。
sp_addrolemember (Transact-SQL)
命令
為當前資料庫中的資料庫角色添加資料庫用戶、資料庫角色、Windows 登錄名或 Windows 組。
sp_droprolemember (Transact-SQL)
命令
從當前資料庫的 SQL Server 角色中刪除安全帳戶。
public 資料庫角色
每個資料庫用戶都屬於 public 資料庫角色。如果未向某個用戶授予或拒絕對安全對象的特定許可權時,該用戶將繼承授予該對象的 public 角色的許可權。
10. SQL sever中 什麼是許可權和角色,分別說出一下。
--什麼是角色?
例如,一個公司可能成立慈善活動委員會,其中包括來自不同部門,來自組織中各種不同級別的職員。這些職員需要訪問資料庫中特殊的項目表。沒有隻包括這些職員的現有 Windows NT 4.0 或 Windows 2000 組,而且沒有其它理由在 Windows NT 4.0 或 Windows 2000 中創建這樣一個組。可以為此項目創建一個自定義 SQL Server 資料庫角色 CharityEvent,並將個別的 Windows NT 和 Windows 2000 用戶添加到此資料庫角色。當應用許可權後,資料庫角色中的用戶便獲得對表的訪問許可權。其它資料庫活動的許可權不受影響,只有 CharityEvent 用戶可以使用該項目表。
SQL Server 角色存在於一個資料庫中,不能跨多個資料庫。
使用資料庫角色的好處包括:
1.對於任何用戶,都可以隨時讓多個資料庫角色處於活動狀態.如果所有用戶、組和角色都在當前資料庫中,則 SQL Server 角色可以包含 Windows NT 4.0 或 Windows 2000 組和用戶,以及 SQL Server用戶和其它角色。
2.在同一資料庫中,一個用戶可屬於多個角色。
3.提供了可伸縮模型以便在資料庫中設置正確的安全級別。
說明:資料庫角色要麼在創建角色時由明確指定為所有者的用戶所擁有,要麼在未指定所有者時為創建角色的用戶所擁有。角色的所有者決定可以在角色中添加或刪除誰。但是,因為角色不是資料庫對象,不能在同一資料庫中創建由不同用戶所擁有的多個同名角色。
許可權--
是指為了保證職責的有效履行,任職者必須具備的,對某事項進行決策的范圍和程度。它常常用「具有批准……事項的許可權」來進行表達。例如,具有批准預算外5000元以內的禮品費支出的許可權。