达梦数据库基本操作-用户管理

1.达梦数据库用户说明

用户用来连接数据库并进行相关操作。除了用户的概念,还有权限和角色两个概念。权限制执行特定类型的SQL命令或者访问其他模式对象的权利,它用于限制用户执行的操作。将相同权限的用户组织在一起,一组相同权限的用户成为角色。角色是特定权限的集合。
数据库管理预定角色一般为 DBA、PUBLIC、RESOURCE。达梦数据库创建用户的语法为:
CREATE USER <用户名>IDENTIFIED<身份验证模式> [PASSWORD_POLICY <口令策略>][<锁定子
句>][<存储加密密钥>][<空间限制子句>][<只读标志>][<资源限制子句>][<允许 IP 子句>][<禁止 IP
子句>][<允许时间子句>][<禁止时间子句>][< 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 <表空间名>
在实际的使用中,大部分为默认值。在创建用户时,一般要指定用户名、密码、资源限制、默认表空间和权限。达梦数据库用户名不区分大小写,在数据库里面统一保存为大写。用户创建如果没有指定默认表空间,系统会指定MAIN空间,并且用户密码要满足口令策略。PWD_POLICY参数控制,改参数设置的策略如下:
  • 0 无策略
  • 1 禁止与用户名相同
  • 2 口令长度不小于9
  • 4 至少包含一个大写字母(A-Z)
  • 8 至少包含一个数字(0-9)
  • 16 至少包含一个标点符号(英文输入法状态下,除“和空格外的所有符号)

口令策略可单独应用,也可组合应用。组合应用时,如需要应用策略2和4,则设置口令策略为2+4=6即可。

除了在创建用户语句中指定该用户的口令策略,DM的INI参数PWD_POLICY可以指定系统的默认口令策略,其参数值的设置规则与PASSWORD
POLICY子句一致,缺省值为2。若在创建用户时没有使用PASSWORD POLICY子句指定用户的口令策略,则使用系统的默认口令策略。

系统管理员可通过查询V$PARAMETER动态视图查询PWD_POLICY的当前值。

SELECT * FROM V$PARAMETER WHERE NAME= 'PWD_POLICY';

2.查看用户相关的信息

以下试图可以查看用户的相关信息
select * from dba_roles;  显示角色的试图
select * from dba_tab_privs;
select username,user_id,account_status from dba_users;  显示系统用户

3. 用户操作演示

a). 创建用户
SQL>
SQL> create user suys identified by "dameng123";
操作已执行
已用时间: 5.063(毫秒). 执行号:51906.
SQL>
b). 用户授权
SQL>
SQL> grant public,resource to suys;
操作已执行
已用时间: 3.372(毫秒). 执行号:51907.
SQL>
SQL> select USERNAME,ACCOUNT_STATUS,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE from dba_users;

行号     USERNAME   ACCOUNT_STATUS DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
---------- ---------- -------------- ------------------ --------------------
1          SYSSSO     OPEN           SYSTEM             TEMP
2          SYSDBA     OPEN           MAIN               TEMP
3          SUYS       OPEN           MAIN               TEMP
4          SYS        OPEN           SYSTEM             TEMP
5          SYSAUDITOR OPEN           SYSTEM             TEMP

已用时间: 5.089(毫秒). 执行号:51910.
SQL>
SQL>

 
可以看到用户创建的时候,没有指定默认表空间,那么使用MAIN空间。
c). 用户连接
SQL> conn suys/dameng123

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 3.349(ms)
SQL>
SQL> select user();

行号     USER()
---------- ------
1          SUYS

已用时间: 1.782(毫秒). 执行号:52000.
SQL>
SQL>
如果用户包含特殊字符,需要使用双引号将密码包含进来,同时外层再使用单引号进行转移,具体例子如下:
[dmdba@dmtest mnt]$
[dmdba@dmtest mnt]$ disql suys/'"dameng123"'@192.168.56.160:5236

服务器[192.168.56.160:5236]:处于普通打开状态
登录使用时间 : 1.131(ms)
disql V8
SQL>

 

4.修改用户

使用 ALTER USER 语句可修改用户口令。除口令外,这个语句还可以修改用户的口令

策略、空间限制、只读属性以及资源限制等。 ALTER USER 的语法与创建用户的语法极为相似,具体语法格式如下:

ALTER USER <用户名> [IDENTIFIED <身份验证模式>][PASSWORD_POLICY <口令策略>][<锁定子

句>][<存储加密密钥>][<空间限制子句>][<只读标志>][<资源限制子句>][<允许 IP 子句>][<禁止 IP

子句>][<允许时间子句>][<禁止时间子句>][<TABLESPACE 子句>][<SCHEMA 子句>];

每个子句的具体语法参见创建用户语法说明

因为之前创建suys用户没有指定表空间,使用默认的MAIN空间,现在创建一个新的表空间,并设置默认表空间

SQL>
SQL> create tablespace tbs_prod  datafile '/dm/dmdbms/data/PROD/tbs_prod01.dbf'  size 256 autoextend off;
操作已执行
已用时间: 267.865(毫秒). 执行号:301.
SQL>
SQL> create tablespace tbs_prod_idx datafile '/dm/dmdbms/data/PROD/idx_prod01.dbf'  size 256 autoextend off;
操作已执行
已用时间: 44.041(毫秒). 执行号:302.
SQL>
SQL>
SQL> alter user suys default tablespace  tbs_prod  default index  tablespace  tbs_prod_idx;
操作已执行
已用时间: 173.310(毫秒). 执行号:303.
SQL>
SQL> select USERNAME,ACCOUNT_STATUS,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE from dba_users;

行号     USERNAME   ACCOUNT_STATUS DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
---------- ---------- -------------- ------------------ --------------------
1          SYSSSO     OPEN           SYSTEM             TEMP
2          SUYS       OPEN           TBS_PROD           TEMP
3          SYSDBA     OPEN           MAIN               TEMP
4          SYS        OPEN           SYSTEM             TEMP
5          SYSAUDITOR OPEN           SYSTEM             TEMP

已用时间: 284.248(毫秒). 执行号:304.
SQL>
SQL>

可以看到用户默认表空间已经修改完毕,这块有个问题,我暂时没有找到用户默认索引表空间在哪个视图,所以这边先留着后面补充。

5.删除用户

DROP USER [IF EXISTS] <用户名> [RESTRICT | CASCADE];

指定 IF EXISTS 关键字后,删除不存在的用户时不会报错,否则会报错。

如果在删除用户时使用了 CASCADE 选项,除数据库中该用户及其创建的所有对象被删除外,若其他用户创建的对象引用了该用户的对象,DM 还将自动删除相应的引用完整性约束及依赖关系

drop user suys cascade;

达梦数据库 - 新一代大型通用关系型数据库 | 达梦云适配中心 (dameng.com)icon-default.png?t=L892https://eco.dameng.com/

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值