达梦数据库DM7用户管理

一、背景

用户是登录数据库的账户,一般情况下,默认一个账户对应一个用户,安装完DM数据库后,系统默认自带一些系统级的用户,主要有四个:
1、SYS -----达梦数据库内置管理用户,不能登录数据库,数据库使用的大部分的数据字典和动态性能视图SYS;
2、SYSDBA-----数据库的管理员;
3、SYSAUDITOR---审计用户;
4、SYSSSO---安全用户在DM数据库中;

每一个用户都有一个默认的表空间,对于 SYS、SYSSSO、SYSAUDITOR 系统用户,默认的用户表空间是 SYSTEM,SYSDBA 的默认表空间为 MAIN,新创建的用户如果没有指定默认表空间,则系统自动指定 MAIN 表空间为用户默认的表空间。

其次与用户相关的概念有:
模式:一个用户默认对应一个同名的模式,但一个用户也可以创建多个模式;
权限:即一个用户,拥有访问数据库哪些资源的哪些权利;
角色:类似于用户组,创建角色时一般会指定角色权限,将角色赋给一个用户,这个用户就拥有了这个角色中的所有权限,DM数据库预定义角色有三个: DBA、PUBLIC、RESOURCE。

关于用户相关的模式、权限、角色在此未展开描述,后续会在其他文章展开。

二、用户相关操作

1、创建用户

语法格式:
CREATE USER <用户名> IDENTIFIED <身份验证模式> [PASSWORD_POLICY <口令策略>][<
锁定子句>][<存储加密密钥>][<空间限制子句>][<只读标志>][<资源限制子句>][<允许 IP 子句>][<
禁止 IP 子句>][<允许时间子句>][<禁止时间子句>][<TABLESPACE 子句>][<INDEX_TABLESPACE 子 句>];<身份验证模式> ::= <数据库身份验证模式>|<外部身份验证模式> <数据库身份验证模式> ::= BY <口令> <外部身份验证模式> ::= EXTERNALLY | EXTERNALLY AS <用户 DN>
<口令策略> ::= 口令策略项的任意组合
<锁定子句> ::= ACCOUNT LOCK | ACCOUNT UNLOCK
<存储加密密钥> ::= ENCRYPT BY <口令> <空间限制子句> ::= DISKSPACE LIMIT <空间大小>| DISKSPACE UNLIMITED
<只读标志> ::= READ ONLY | NOT READ ONLY
<资源限制子句> ::= LIMIT <资源设置项>{,<资源设置项>}
<资源设置项> ::= SESSION_PER_USER <参数设置>|
                            CONNECT_IDLE_TIME <参数设置>|
                            CONNECT_TIME <参数设置>|
                            CPU_PER_CALL <参数设置>|
                            CPU_PER_SESSION <参数设置>|
                            MEM_SPACE <参数设置>|
                            READ_PER_CALL <参数设置>|
                            READ_PER_SESSION <参数设置>|
                            FAILED_LOGIN_ATTEMPS <参数设置>|
                            PASSWORD_LIFE_TIME <参数设置>| 
                            PASSWORD_REUSE_TIME <参数设置>|
                            PASSWORD_REUSE_MAX <参数设置>| 
                            PASSWORD_LOCK_TIME <参数设置>| 
                            PASSWORD_GRACE_TIME <参数设置>
<参数设置> ::=<参数值>| UNLIMITED
<允许 IP 子句> ::= ALLOW_IP <IP 项>{,<IP 项>}
<禁止 IP 子句> ::= NOT_ALLOW_IP <IP 项>{,<IP 项>}
<IP 项> ::= <具体 IP>|<网段> <允许时间子句> ::= ALLOW_DATETIME <时间项>{,<时间项>}
<禁止时间子句> ::= NOT_ALLOW_DATETIME <时间项>{,<时间项>}
<时间项> ::= <具体时间段> | <规则时间段> <具体时间段> ::= <具体日期> <具体时间> TO <具体日期> <具体时间> <规则时间段> ::= <规则时间标志> <具体时间> TO <规则时间标志> <具体时间> 
<规则时间标志> ::= MON | TUE | WED | THURS | FRI | SAT | SUN
<TABLESPACE 子句> ::=DEFAULT TABLESPACE <表空间名>
<INDEX_TABLESPACE 子句> ::= DEFAULT INDEX TABLESPACE <表空间名>

在我们实际使用中,我们最主要需要注意的是,创建用户指定的用户名、密码、资源限制、模式、表空间以及权限;

下面我们进行创建测试:

CREATE USER QHKTEST 
  IDENTIFIED BY qhkKKK123
  DISKSPACE LIMIT 2
  LIMIT
    CONNECT_IDLE_TIME 1,
    PASSWORD_GRACE_TIME 3;

 首先我们创建一个QHKTEST用户,密码为qhkKKK123,磁盘使用空间2M,其次会话连接闲置时间为1分钟,密码过期时间3天;
然后我们用QHKTEST登录数据库,看设置是否生效,特别是一分钟闲置会话时间的设置

从上面我们可以看到,用户登录数据库成功,但是等了3分钟过后,执行SQL的时候,就报错“网络连接异常”,即我们设置的用户策略全都是生效的;

2、用户赋权

语法格式:
GRANT [PRIV_NAME] ON [SCHEMA_NAME].[TABLE_NAME] TO [USER_NAME];

测试只给QHKTEST一个表的SELECT 权限,其余表无权限
GRANT SELECT ON SYSDBA.TEST1 TO QHKTEST;

赋权成功后查询测试:

一般情况下,我们需要赋权的主要是增删查改,其次就是创建视图,触发器等,具体权限设置,根据需求确定。

3、修改用户:

首先我们查看系统中所有的用户信息:

select * from dba_users;

 从上面可以看到,QHKTEST的默认表空间和SYSDBA用户一样,也是MAIN,而创建QHKTEST的时候未指定表空间,现在我们修改默认表空间:

CREATE TABLESPACE QHKTEST DATAFILE 'F:\DM7\DATA\DAMENG\QHKTEST.DBF' SIZE 128;
ALTER USER QHKTEST IDENTIFIED BY qhkKKK123 DEFAULT TABLESPACE QHKTEST;
SELECT * FROM DBA_USERS;

日常运维过程中,我们经常会用到alter命令以实现用户信息的修改,其他常用的包括:修改密码alter...identified by...、锁定解锁用户alter ...acount lock/unlock等,在此不做展开。

4、 查询用户信息:

查询所有用户信息(如上面截图):
select * from dba_users;

查询所有用户对应的角色:
select * from dba_role_privs;

查询当前用户:
select * from user_users;

5、删除用户:

DELETE USER QHKTEST CASCADE;

该命令请谨慎使用,防止影响生产环境。

更多用户管理相关内容,可以访问达梦官网学习达梦数据库 - 新一代大型通用关系型数据库 | 达梦云适配中心

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值