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

简介: 本文介绍了三权分立下的三类管理员相关权限。 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 |
+----------------+----------------+-------+----------------------------------------------------+-------------+------
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
存储 自然语言处理 搜索推荐
什么是向量数据库?
什么是向量数据库?
1901 0
|
算法 数据挖掘 开发者
Hunt' s Algorithm| 学习笔记
快速学习 Hunt' s Algorithm。
Hunt' s Algorithm| 学习笔记
|
Android开发 容器 缓存
Android Camera2使用
1. 相机使用流程 图1.jpg 2. SurfaceView /** * Android 5.0 使用Camera2 照相 * 使用SurfaceView显示 * 主要步骤: * 1.
1810 0
|
负载均衡 Java 应用服务中间件
Gateway服务网关
本节针对微服务中另一重要组件:网关 进行了实战性演练,网关作为分布式架构中的重要中间件,不仅承担着路由分发(重点关注Path规则配置),同时可根据自身负载均衡策略,对多个注册服务实例进行均衡调用。本节我们借助GateWay实现的网关只是技术实现的方案之一,后续大家可能会接触像:Zuul、Kong等,其实现细节或有差异,但整体目标是一致的。
|
机器学习/深度学习 算法 Python
【2023 华数杯全国大学生数学建模竞赛】 A题 隔热材料的结构优化控制研究 问题分析、模型建立及参考文献
本文提供了2023年华数杯全国大学生数学建模竞赛A题的详细分析、数学模型建立及参考文献,聚焦于隔热材料的结构优化控制研究,旨在解决单根隔热材料纤维的热导率测量难题,并探讨如何通过优化织物编织结构来提升隔热性能。
204 0
【2023 华数杯全国大学生数学建模竞赛】 A题 隔热材料的结构优化控制研究 问题分析、模型建立及参考文献
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp微信小程序的会议发布与预约系统的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的会议发布与预约系统的详细设计和实现
201 0
|
JSON 前端开发 JavaScript
Vite 官方文档速通(上)
Vite 官方文档速通(上)
369 0
|
存储 SQL XML
Burpsuite入门之target模块攻防中利用
1. 可以用来收集目标站点的更多资产 2. 可以探测一些自动加载的接口、内容等,有的内容并不能被访问者直接看见,通过抓包的方式就可以一目了然。
1353 2
Burpsuite入门之target模块攻防中利用
阿里云商标注册教程:新手自助申请详细步骤
阿里云商标注册图文教程快速上手笔记,本文以阿里云商标智能注册申请为例,商标智能注册申请需要用户手动填写商标类型、商标名称、商标图样、商标说明及商标分类表选择等操作,流程较为复杂,TM83商标网来详细说下阿里云商标注册快速上手笔记
1255 1
阿里云商标注册教程:新手自助申请详细步骤