数据库
数据库中用户与角色权限管理各有什么作用?
一、数据库中用户与角色权限管理各有什么作用?
角色一直存在各个数据库中,比如 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 个目录说明了角色在各个方面的使用以及注意事项,希望对大家有帮助。
二、数据库角色是什么?
对某个 Analysis Services 数据库具有相同访问权限的用户和组的集合。
可以将数据库角色指派给数据库中的多个多维数据集,从而将该角色的用户访问权限授予这些多维数据集。三、什么是数据,数据库,数据库管理系统,数据库管理员,数据库系统?
数据是数据库存储的对象。种类很多,文本、图形、图像、音频、视频等都是数据。 数据库是指长期存储在计算机内的,有组织的,可共享的数据集合。 数据库管理系统是一类重要的的系统软件,有一组程序 构成,其主要功能是完成对数据库中数据的定义,数据操纵,提供给用户一个简明的应用接口,实现事务处理等。 数据库系统是由数据库及其管理软件组成的系统。它是为适应数据处理的需要而发展起来的一种较为理想的数据处理的核心机构。它是一个实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体。
四、成本管理角色定义?
成本管理是指在成本方面指挥和控制组织的协调的活动。在成本方面的指挥和控制活动,通常包括:成本方针、成本目标、成本策划、成本控制。
成本管理是各级管理者的职责,必须由最高管理者领导和推动,成本管理的实施需要组织中全体成员的参与。上述成本管理活动是整个一个大循环,并通过持续改进以改善成本管理,减少或杜绝资源的浪费和损失,使成本降到尽可能低的水平,再进行成本管理活动的另一个大循环。
组织在实施成本管理过程中应考虑到:不影响顾客满意和满足法律法规要求。
五、数据库管理员的角色与职责详解
引言
在现代企业中,数据成为了推动业务发展的核心要素,因此数据库管理员(DBA)的角色变得愈发重要。DBA不仅负责管理企业的数据资源,还确保数据的安全性、完整性和可用性。本文将深入探讨数据库管理员的主要职责以及他们在企业中扮演的关键角色。
数据库管理员的主要职责
数据库管理员的工作内容广泛,以下是一些主要职责:
- 数据库设计与构建:DBA需要参与到数据库系统的规划和设计工作,包括选择适合的数据库管理系统(DBMS),设计数据模型,创建表结构等。
- 数据库安装与维护:建立数据库后,DBA负责对其进行安装、配置和调整,确保系统高效运行。
- 性能监测与优化:定期监测数据库的性能,并通过优化查询、索引和数据库配置来提高系统的响应速度和处理能力。
- 数据安全管理:DBA需要设定适当的权限和用户访问控制,防止数据泄露和未授权访问,确保数据库的安全性。
- 备份与恢复:定期进行数据备份,以防意外数据丢失。同时,DBA需要制定有效的数据恢复计划,以便在遭遇故障时迅速恢复数据。
- 故障排除:遇到数据库相关问题时,DBA负责分析原因并快速解决,以减少对业务的影响。
- 支持与培训:DBA还需要向开发人员和用户提供技术支持与培训,让他们能够有效使用数据库系统。
数据库管理员的技术技能要求
作为一名合格的数据库管理员,掌握一定的技术技能是必不可少的。以下是一些数据库管理员需要掌握的关键技能:
- 数据库管理系统知识:精通主流数据库管理系统,如Oracle、MySQL、SQL Server等。
- SQL语言:熟练使用SQL进行数据查询、更新和管理,能够编写复杂的查询语句。
- 系统操作系统知识:对操作系统(如Linux、Windows)的理解,有助于更好地进行数据库的安装与维护。
- 网络知识:了解基础的网络知识,对于数据库的连接和性能调优非常重要。
- 备份与恢复策略:具有实施数据备份和恢复策略的能力,以确保数据的安全和完整性。
- 问题解决能力:逻辑思维能力强,能够快速定位并解决问题。
数据库管理员的职业发展方向
随着企业对数据管理需求的不断增加,数据库管理员这个职业的发展方向也日趋多样化。以下是一些可能的职业发展路径:
- 高级数据库管理员:通过积累经验和技能,晋升为高级DBA,负责更复杂的数据库系统。
- 数据库架构师:从事数据库设计和架构工作,负责系统的整体架构规划。
- 数据工程师:转向大数据领域,利用数据库技术为大规模数据分析和处理提供支持。
- 数据分析师:结合数据库管理经验,分析数据并为决策提供支持。
总结
数据库管理员是确保企业数据安全与有效管理的关键人员。他们的职责不仅限于维护数据库的正常运行,还需要参与数据的设计、优化、备份等多个方面。掌握必要的技术技能将助力DBA在职业生涯中开拓更广阔的道路。感谢您阅读完这篇文章,希望本文能帮助您更好地理解数据库管理员的职责及其重要性。
六、数据库管理系统是(?
管理系统是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
七、角色管理和用户管理的区别?
角色相当于用户组,
如设置角色财务并设置该角色对应的权限
再设置几个财务的用户,只要把用户加到财务角色里,那么这几个用户就有刚才设置的几个权限了
1,管理角色可以负责所有内容的修改,可以给用户权限,
2.用户只能在你的权限范围内使用你的权限,
简单来说,一个家庭,爸爸(或者妈妈)是管理者他们管你,他们在家庭的权力多,你少。
八、与数据库角色相比应用程序角色的特点?
与数据库角色相比来说,应用程序角色有三个特点:
第一,在默认情况下该角色不包含任何成员;
第二,在默认情况下该角色是非活动的,必须激活之后才能发挥作用;
第三,该角色有密码,只有拥有应用程序角色正确密码的用户才可以激活该角色。当激活某个应用程序角色之后,用户会失去自己原有的权限,转而拥有应用程序角色的权限。
九、仓库管理角色的演讲?
管理分类:
1、产品类:成品管理,半成品管理,面输料管理,其它物件管理
2、人员管理:人员的分工、考核、人员的日常管理等
仓库管理基本上分这些,公司重重的主要是仓储效率方面的提升,管理效率高损失率低,发货效率高。就从这些方面来讲;另外,还要吧了解下跟仓储有关的业务部门,看怎么帮助业务部门提高效益也是仓储管理者应该关注的
十、win 10管理,角色,在哪?
桌面右键点击这台电脑--属性选择控制面板主页在类别中选择大图标选择管理工具选择计算机管理双击本地用户和组双击用户文件夹双击administrator账户将账户已禁用前面的复选框勾去掉,点击应用按钮administrator账户启用成功
热点信息
-
在Python中,要查看函数的用法,可以使用以下方法: 1. 使用内置函数help():在Python交互式环境中,可以直接输入help(函数名)来获取函数的帮助文档。例如,...
-
一、java 连接数据库 在当今信息时代,Java 是一种广泛应用的编程语言,尤其在与数据库进行交互的过程中发挥着重要作用。无论是在企业级应用开发还是...
-
一、idea连接mysql数据库 php connect_error) { die("连接失败: " . $conn->connect_error);}echo "成功连接到MySQL数据库!";// 关闭连接$conn->close();?> 二、idea连接mysql数据库连...
-
要在Python中安装modbus-tk库,您可以按照以下步骤进行操作: 1. 确保您已经安装了Python解释器。您可以从Python官方网站(https://www.python.org)下载和安装最新版本...