一.用户创建命令
1、用户创建基础操作
以下是在达梦数据库(DM8)中创建用户并分配指定权限的详细步骤:
create user HOT identified by "Wad150365." default tablespace "HOT";
grant "PUBLIC", "RESOURCE" "SOI" to HOT;
grant SELECT ANY TABLE,CREATE SESSION ,CREATE TABLE,CREATE VIEW,CREATE INDEX,BACKUP DATABASE, INSERT TABLE, ALTER PROFILE, ALTER TABLE to HOT;
2、用户修改用户密码
ALTER USER "TEST_USER" IDENTIFIED BY "NewPassword123";
删除用户
DROP USER "TEST_USER" CASCADE; -- CASCADE级联删除用户对象
查询用户信息
select * from DBA_USERS;
查看用户权限
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'TEST_USER';
DBA_SYS_PRIVS 试图中获取有关特定用户(如 TEST_USER)的所有系统权限的信息。
解释查询结果:
GRANTEE:表示被授予权限的用户名。
PRIVILEGE:表示授予权限的具体权限名称。
ADMIN_OPTION:表示该用户是否有权将此权限再授予其他用户(如果有,则值为Y,否则为N)
二、权限知识
一、基础连接权限
权限名称 | 作用描述 |
| 核心权限:允许用户连接到数据库实例(无此权限将无法登录) |
二、对象创建权限
权限名称 | 作用描述 |
| 允许在用户自己模式下创建表 |
| 允许在任何模式下创建表(需谨慎授予) |
| 允许创建视图 |
| 允许在自有表上创建索引 |
| 允许创建序列 |
| 允许创建存储过程/函数 |
| 允许创建触发器 |
三、数据操作权限
权限名称 | 作用描述 |
| 允许查询所有模式的表(跨模式读取) |
| 允许向所有模式的表插入数据 |
| 允许更新所有模式的表数据 |
| 允许删除所有模式的表数据 |
四、管理类权限
权限名称 | 作用描述 |
| 允许修改用户密码/属性 |
| 允许修改表空间属性 |
| 允许无限制使用所有表空间(默认无此权限需单独授权) |
五、常用角色说明
角色名称 | 包含的核心权限 |
PUBLIC | 基础权限:包含 |
RESOURCE | 开发权限:包含 |
DBA | 管理员权限:包含绝大多数系统权限(慎用) |
SOI | 包括对数据库中表、视图的基础访问权限; |
SVI |
|
VTI | 执行与外部表相关的操作权限,这通常涉及到更高级别的权限管理,因为需要连接外部资源 |
六、典型权限组合示例
1. 开发用户
GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE SEQUENCE TO user1;
GRANT RESOURCE TO user1; -- 补充开发权限
ALTER USER user1 LIMIT SPACE ON users_tbs UNLIMITED;
2. 数据分析用户
GRANT CREATE SESSION, SELECT ANY TABLE TO analyst;
GRANT CREATE VIEW TO analyst; -- 允许创建分析视图
3. 运维用户
GRANT CREATE SESSION, ALTER TABLESPACE, ALTER USER TO dba_assist;
GRANT SELECT ANY TABLE, INSERT ANY TABLE TO dba_assist;
注意事项:
- 使用
ANY
类权限(如SELECT ANY TABLE
)会跨越模式权限控制,生产环境需谨慎授予 - 建议优先通过角色(ROLE)管理权限,而非直接授予用户
- 通过
SELECT * FROM DBA_SYS_PRIVS
可查看完整权限列表
- 表空间管理:
-
LIMIT SPACE ON
确保用户可在HOT表空间无限制存储- 若需限制空间使用量:
ALTER USER "HOT" LIMIT SPACE ON "HOT" 1024; -- 单位MB
- 权限验证:
-- 查看用户权限
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'HOT';
-- 查看用户角色
SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'HOT';
扩展建议:
- 若需要跨模式操作,可额外授权:
GRANT SELECT ANY TABLE TO "HOT"; -- 跨模式查询
GRANT INSERT ANY TABLE TO "HOT"; -- 跨模式插入
- 生产环境建议添加密码有效期限制:
ALTER USER "HOT" PASSWORD EXPIRE_DAYS 90;
权限示意图:
用户权限组成
├── 系统权限
│ ├── CREATE SESSION(显式授权)
│ ├── CREATE TABLE(来自RESOURCE角色)
│ └── ...
├── 角色权限
│ ├── PUBLIC(基础权限)
│ └── RESOURCE(核心开发权限)
└── 表空间权限
└── HOT表空间无限制使用权
达梦社区地址:https://eco.dameng.com