开发指南—权限管理—三权分立下的权限管理

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 本文介绍了三权分立下的三类管理员相关权限。 PolarDB-X在开启三权分立模式后,默认的高权限账号将划分为系统管理员账号、安全管理员账号和审计管理员账号,具体功能介绍与使用方法可参考三权分立。

下面将以上述三个类型管理员的身份来演示不同类型的SQL操作,其中三类管理员的用户名分别如下所示:

  • 系统管理员:admin_dba
  • 安全管理员:admin_security
  • 审计管理员:admin_audit

系统管理员

只有系统管理员具备DDL相关权限:


mysql> SELECT USER();
+--------------------------+
| USER()                   |
+--------------------------+
| admin_dba@10.159.164.179 |
+--------------------------+
mysql> create database priv_test;
Query OK, 1 row affected (0.09 sec)
mysql> use priv_test;
Database changed
mysql> create table test (id int primary key, value int);
Query OK, 0 rows affected (1.23 sec)

但系统管理员不具备DML/DQL/DAL以及权限管理功能:


mysql> select * from test;

ERROR 5108 (HY000): 130b87654f001000[priv_test]ERR-CODE: TDDL-5108 User admin_dba@'10.159.164.179' does not have 'SELECT' privilege on table 'TEST'. Database is PRIV_TEST.
mysql> insert into test values (1, 123);
ERROR 5108 (HY000): 130b877647c01000[priv_test]ERR-CODE: TDDL-5108 User admin_dba@'10.159.164.179' does not have 'INSERT' privilege on table 'TEST'. Database is PRIV_TEST.
mysql> CREATE USER 'user1'@'%' IDENTIFIED BY '123456';
ERROR 5110 (HY000): 130b877e6f001000[priv_test]ERR-CODE: TDDL-5110 User admin_dba@'%' does not have 'CREATE ACCOUNT' privilege.

安全管理员

安全管理员同样不具备DML/DQL/DAL权限,但支持账户或角色的权限管理以及将DML/DQL/DAL权限授予给普通账号:


mysql> SELECT USER();
+-------------------------------+
| USER() |
+-------------------------------+
| admin_security@10.159.164.119 |
+-------------------------------+
mysql> use priv_test;
Database changed
mysql> select * from test;
ERROR 5108 (HY000): 130b8a31af401000[priv_test]ERR-CODE: TDDL-5108 User admin_security@'10.159.164.119' does not have 'SELECT' privilege on table 'TEST'. Database is PRIV_TEST.
mysql> CREATE USER 'user1'@'%' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.08 sec)
mysql> GRANT SELECT,INSERT,UPDATE ON priv_test.* TO 'user1'@'%';
Query OK, 0 rows affected (0.06 sec)
-- 使用user1账户登录
mysql> SELECT USER();
+---------------------+
| USER() |
+---------------------+
| user1@10.159.164.29 |
+---------------------+
mysql> show grants;
+------------------------------------------------------------+
| GRANTS FOR 'USER1'@'%' |
+------------------------------------------------------------+
| GRANT USAGE ON . TO 'user1'@'%' |
| GRANT SELECT, INSERT, UPDATE ON priv_test.* TO 'user1'@'%' |
+------------------------------------------------------------+
mysql> insert into test values (1, 123);
Query OK, 1 row affected (0.02 sec)
mysql> select * from test;
+------+-------+
| id | value |
+------+-------+
| 1 | 123 |
+------+-------+

安全管理员不具备DDL相关权限:


mysql> drop table test;
ERROR 5108 (HY000): 130b8a1b9dc01000[priv_test]ERR-CODE: TDDL-5108 User admin_security@'10.159.164.59' does not have 'DROP' privilege on table 'TEST'. Database is PRIV_TEST.

审计管理员

审计管理员只具备查看审计日志的权限:


mysql> SELECT USER();
+----------------------------+
| USER() |
+----------------------------+
| admin_audit@10.159.164.209 |
+----------------------------+
mysql> select USER_NAME,HOST,PORT,AUDIT_INFO,ACTION,TRACE_ID from polardbx_audit_log where SCHEMA = 'priv_test';
+----------------+----------------+-------+----------------------------------------------------+-------------+------------------+
| USER_NAME | HOST | PORT | AUDIT_INFO | ACTION | TRACE_ID |
+----------------+----------------+-------+----------------------------------------------------+-------------+------------------+
| admin_dba | 10.159.164.239 | 26245 | create table test (id int primary key, value int) | CREATE | 130b83120e003000 |
| admin_security | 10.159.164.239 | 37537 | create table test2 (id int primary key, value int) | CREATE | 130b839700402000 |
| admin_audit | 10.159.164.89 | 51128 | create table test2 (id int primary key, value int) | CREATE | 130b83ea42404000 |
| admin_dba | 10.159.164.119 | 15923 | CREATE USER 'user1'@'%' IDENTIFIED BY '123456' | CREATE | 130b8658c9c03000 |
| admin_dba | 10.159.164.119 | 15923 | CREATE USER 'user1'@'%' IDENTIFIED BY '123456' | CREATE | 130b866b49c03000 |
| admin_dba | 10.159.164.179 | 24559 | CREATE USER 'user1'@'%' IDENTIFIED BY '123456' | CREATE | 130b877e6f001000 |
| admin_security | 10.159.164.119 | 44965 | create table test2 (id int primary key, value int) | CREATE | 130b87c6f6002000 |
| admin_security | 10.159.164.119 | 44965 | CREATE USER 'user1'@'%' IDENTIFIED BY '123456' | CREATE_USER | 130b87ee65402000 |
| admin_security | 10.159.164.119 | 44965 | CREATE USER 'user1'@'%' IDENTIFIED BY '123456' | CREATE | 130b87ee65402000 |
| admin_security | 10.159.164.119 | 44965 | GRANT SELECT,UPDATE ON priv_test.* TO 'user1'@'%' | GRANT | 130b88a7b0402000 |
| admin_security | 10.159.164.59 | 21156 | drop table test | DROP | 130b8a1b9dc01000 |
+----------------+----------------+-------+----------------------------------------------------+-------------+------
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
14天前
|
数据安全/隐私保护
权限管理
权限管理
17 1
|
2月前
|
Linux 数据安全/隐私保护
vLinux权限管理
Linux权限管理是一种控制用户和程序对文件和文件夹的访问的方法。它使用三个主要的概念:所有者(owner)、群组(group)和其他(others)。 每个文件和文件夹都有一个所有者,这是创建该文件或文件夹的用户。所有者拥有最高的权限,可以对文件和文件夹进行更改、读取和删除。群组是一组用户,他们可以共享文件和文件夹的权限。其他用户是除所有者和群组以外的其他用户。 Linux使用三个主要的权限:读、写和执行。读权限允许用户查看文件或文件夹的内容,写权限允许用户更改文件或文件夹的内容,执行权限允许用户运行文件或文件夹中的程序。是一种控制用户和程序对文件和文件夹的访问的方法。它使用三个主要的概念:
25 3
|
Web App开发 移动开发 监控
100多个经典常用的网站模板大全实例演示和下载
推荐模板 /Template 11-07 二当家的网站后台模板源码 08-29 黑色技术微博客响应式模板 08-22 html5绿色通用的APP页面下载 08-07 绿色大...
7605 0
|
SQL 安全 数据安全/隐私保护
开发指南—权限管理—三权分立下的权限管理
本文介绍了三权分立下的三类管理员相关权限。 PolarDB-X在开启三权分立模式后,默认的高权限账号将划分为系统管理员账号、安全管理员账号和审计管理员账号,具体功能介绍与使用方法可参考三权分立。
177 0
|
关系型数据库 MySQL 数据安全/隐私保护
开发指南—权限管理—角色权限管理
本文介绍角色权限管理相关语法级示例。 PolarDB-X兼容原生MySQL 8.0基于橘色的权限控制,请参见基于角色的权限控制。
114 0
|
8月前
|
消息中间件 Java Kafka
RabbitMQ、Kafka、RocketMQ消息中间件对比总结
不论Kafka还是RabbitMQ和RocketMQ,作为消息中间件,其作用为应用解耦、异步通讯、流量削峰填谷等。 拿我之前参加的一个电商项目来说,订单消息通过MQ从订单系统到支付系统、库存系统等,当订单信息写入MQ后就不再关心后续操作,既达到了应用解耦又达到异步通信。因为订单的并发量较大,为了避免数据库承受不住,在订单信息持久化时通过MQ+定时任务将订单信息均匀的持久到数据库中,达到削峰填谷作用。 那为什么有这么多的MQ?这些MQ又有什么区别?本文基于RabbitMQ、Kafka、RocketMQ,从侧重点、架构模型、消息通讯以及其他方面对比说明。
181 0
|
关系型数据库 MySQL 数据库
开发指南—权限管理—账号权限管理
本文介绍了账号权限管理的相关操作。 PolarDB-X账号和权限系统的用法与MySQL 5.7一致,支持GRANT、REVOKE、SHOW GRANTS、CREATE USER、DROP USER、SET PASSWORD等语句,目前支持库级和表级权限的授予,全局级别和列级别权限暂时不支持。
147 0
|
10月前
|
存储 SQL 机器学习/深度学习
MaxCompute(原名ODPS,全称Open Data Processing Service)
MaxCompute(原名ODPS,全称Open Data Processing Service)是阿里云开发的一种云原生数据处理和分析服务。它提供了强大的数据计算和处理能力,支持海量数据的存储、计算、分析和挖掘,并且具有高可靠、高性能、高可扩展、高安全等优势,适用于各种数据处理和分析场景。
574 0
|
API
【Ant Design Pro】使用ant design pro做为你的开发模板(九)开发第一个完整的后台页面(二)
【Ant Design Pro】使用ant design pro做为你的开发模板(九)开发第一个完整的后台页面(二)
570 0
【Ant Design Pro】使用ant design pro做为你的开发模板(九)开发第一个完整的后台页面(二)
|
存储 SQL 分布式计算
阿里云 MaxCompute
阿里云 MaxCompute自制脑图, MaxCompute 是一种全新的大数据计算服务。它能提供快速完全托管的 PB 级仓库解决方案,让你不用花费大量成本建数据中心,就能分析处理高达 PB 级的海量数据。
765 0
阿里云 MaxCompute