达梦disql交互式实操:对象、用户、角色与权限管理
本次针对达梦数据库对象、用户、角色与权限管理的练习,我采用交互式逐条执行 SQL 语句的方式开展学习,而非直接运行完整批量脚本。
在银河麒麟操作系统的 disql 命令行交互环境中,我以 SYSDBA 管理员身份登录数据库,参照达梦 SQL 语言手册,分段手动输入 DDL、DCL 类型 SQL 语句,分步完成数据表、索引、视图、序列等数据库对象的创建与管理,依次执行创建用户、修改用户属性、创建自定义角色、分配与回收系统权限及对象权限等操作。
上述提到DDL、DCL类型语句。这里解释一下SQL 语句按功能分为 4 大类:DDL、DCL、DML、TCL,本次实操只用到 DDL(建对象)、DCL(用户 / 角色 / 权限)。
1. DDL:数据定义语言(定义数据库里有什么对象)
2. DCL:数据控制语言(控制谁能访问、有什么权限)
3. DML:数据操纵语言(操作表里的数据行:增删改查 `INSERT/UPDATE/DELETE/SELECT`)
4. TCL:事务控制语言(提交回滚 `COMMIT/ROLLBACK`)
交互式逐条执行的方式,能够清晰理解每一条 SQL 语句的作用、语法规则以及执行后的变化,在遇到语法错误、权限限制等问题时,可以独立分析并排查问题。
一、切换dmdba用户【以 SYSDBA 管理员身份登录 disql 交互式环境】

二、创建数据库对象
【执行 DDL 语句,依次创建数据表、索引、视图、序列等数据库对象,并验证创建结果】
1.创建两张基础表
(创建部门表,部门编号为主键、部门名称)

(创建员工表,员工编号为主键、员工姓名、员工所属部门编号、工资)

2.插入测试数据


3.索引
(创建普通B树索引,给员工表EMP的部门编号DEPT_ID字段创建索引)

(查看索引信息)

4.视图
(创建普通视图)

(查询视图)

5.序列
(创建序列)

(使用序列新增一条数据)

三、用户管理
【执行 DCL 语句,创建业务用户,完成密码修改、账号锁定解锁等用户生命周期操作】
1.创建新用户

2.管理员修改用户密码

3.锁定、解锁用户

4.查询用户信息

四、角色管理
【创建自定义角色,为角色分配对象权限,将角色授予用户,完成权限打包管理】
1.创建两个自定义角色(只读角色、业务操作员角色)

2.给角色分配权限

3.角色嵌套(继承)

4.把角色赋给普通用户

5.查询用户被授予的角色

五、权限管理
【单独授予 / 回收系统权限与对象权限,通过数据字典视图查看权限配置】
1.授予系统权限(登录、建表、建视图、建序列、创建用户、修改表空间)

2.授予对象权限

3.回收权限

4.查看权限


六、验证
【切换新建的普通用户登录,验证权限生效与权限隔离效果,观察权限不足的报错】
新开一个终端,进入disq,用刚创建的用户登录

手动逐条测试:
拥有查询权限


拥有插入权限

UPDATE权限已被回收,未执行成功

七、清理环境

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐
所有评论(0)