當前位置:首頁 » 操作系統 » 資料庫角色是什麼關系

資料庫角色是什麼關系

發布時間: 2022-11-14 13:00:14

資料庫角色是什麼

對某個 Analysis Services 資料庫具有相同訪問許可權的用戶和組的集合。可以將資料庫角色指派給資料庫中的多個多維數據集,從而將該角色的用戶訪問許可權授予這些多維數據集。

② ORACLE資料庫中 方案,實例,資料庫,用戶,角色,表空間,表 這些概念都是什麼意思,之間有什麼關系

資料庫:就是咱安裝的那個軟體,這個不必多說

實例:安裝資料庫後第一步就是創建實例,就相等於一大塊地的名,比如你用PL/sql連接資料庫時選擇資料庫名實際上就是實例名,它的說法欠缺嚴謹。在oracle安裝路徑中的tnsnames.ora文件可以清楚的看到其配置,這個你應該知道,不知道再問我。

表空間:就相當於一塊地皮,你所有的資料庫對象都是在表空間中存的

用戶:就是一個登陸的名,當然得有密碼,它跟表空間是多對多的關系的,但我們在創建用戶時一般都指定默認表空間的,若不指定用戶默認表空間的話,則用戶每次創建資料庫對象的時候,都要指定表空間,太麻煩

角色:每個用戶都有角色,它決定了該用戶有什麼許可權,比如DBA,擁有最高許可權

表:這個就不用說了吧,但要說明的是一個表只能屬於一個表空間

……………………………………………………………………………………………………
累死我了,沒有功勞也有點苦勞啊

③ 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)

  • 創建三個普通用戶,分別為 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試題 解答題: 角色有哪幾種,角色和用戶有哪些關系

--用戶指的是資料庫用戶,單純的用戶是沒有任何許可權的,需要給相應的角色才可以
--不明白可以隨時來問我,希望採納
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

⑤ 在SQL Server 里,登錄名,用戶,角色,許可權,有啥聯系

登錄名
就是用戶名,同一個資料庫中含有多個用戶;
【用戶】與【角色】還有【許可權】是「多對多」的關系,一個用戶可以有多個角色,也可以被賦予多個許可權;同一個角色可以賦給多個用戶,也可以含有多個許可權;同一個許可權也可以賦給多個用戶和角色;
說道區別:你可以把
登錄名比作一個人的名字,而用戶是這個人,角色就是這個在不同情況下所具有的職能的總和,而許可權就是做各種事的能力。

⑥ 資料庫中用戶和角色的區別

簡單的比喻一下:
角色就相當於崗位:角色可以是經理,助理。
用戶就是具體的人:比如陳XX經理,朱XX助理。

⑦ 什麼是資料庫角色

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

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 角色的許可權。

⑧ 資料庫,什麼是角色什麼是成員簡述角色和成員的作用。

你可以這樣想,角色相當於win的用戶組,它是一個成員的集合,可以自定義角色,舉例:資料庫擁有者dbowner;成員就是win的用戶,成員隸屬於某個角色或多個角色,舉例:dbo就是屬於dbowner的一個成員。

⑨ 試述登陸名與資料庫用戶、資料庫用戶和角色之間的關系

以mssql為例,登錄賬戶是sa,dbo是成員(用戶賬號),dbo隸屬於資料庫擁有者(這個角色)。如果只添加一個登錄名,而不綁定角色和授權資料庫,那新登錄只能訪問系統資料庫(master等)

熱點內容
換編程題庫 發布:2024-05-18 18:00:58 瀏覽:561
如何使用伺服器ip直連網站 發布:2024-05-18 18:00:49 瀏覽:431
三星n7100哪個安卓版本好用 發布:2024-05-18 17:55:41 瀏覽:489
萬國覺醒採集腳本源碼 發布:2024-05-18 17:55:39 瀏覽:946
sqlserver加欄位 發布:2024-05-18 17:54:53 瀏覽:927
安卓手機如何清除應用記錄 發布:2024-05-18 17:31:37 瀏覽:639
查看存儲過程許可權 發布:2024-05-18 17:18:33 瀏覽:191
php類self 發布:2024-05-18 17:15:03 瀏覽:894
手機2b2t的伺服器地址是多少 發布:2024-05-18 17:14:56 瀏覽:188
戴爾8490哪個配置比較合理 發布:2024-05-18 17:14:51 瀏覽:168