当前位置:首页 » 操作系统 » 数据库角色是什么关系

数据库角色是什么关系

发布时间: 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等)

热点内容
内置存储卡可以拆吗 发布:2025-05-18 04:16:35 浏览:336
编译原理课时设置 发布:2025-05-18 04:13:28 浏览:378
linux中进入ip地址服务器 发布:2025-05-18 04:11:21 浏览:612
java用什么软件写 发布:2025-05-18 03:56:19 浏览:32
linux配置vim编译c 发布:2025-05-18 03:55:07 浏览:107
砸百鬼脚本 发布:2025-05-18 03:53:34 浏览:944
安卓手机如何拍视频和苹果一样 发布:2025-05-18 03:40:47 浏览:741
为什么安卓手机连不上苹果7热点 发布:2025-05-18 03:40:13 浏览:803
网卡访问 发布:2025-05-18 03:35:04 浏览:511
接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:372