注册
达梦数据库用户与模式管理
专栏/培训园地/ 文章详情 /

达梦数据库用户与模式管理

seriously 2022/11/07 16465 7 0
摘要

在进行达梦数据库用户与模式管理时,我们必须要明确达梦数据库用户与模式的定义及其之间的关系:

用户(USER):用户是用来连接数据库并进行相关操作的。

模式(SCHEMA):模式是数据库对象的集合,模式是数据库的逻辑结构。

在达梦数据库中,用户(USER)和模式(SCHEMA)是一对多的关系,即一个用户拥有至少一个及以上的模式,而一个模式只能属于一个用户。达梦数据库用户与模式的对应关系可以通过如下方式查看。

SQL> select a.name as username, b.name as schenma from sysobjects a inner join sysobjects b on a.id = b.pid where b.subtype$ is null order by username desc;

行号 USERNAME SCHENMA


1 SYSSSO SYSSSO

2 SYSDBA SYSJOB

3 SYSDBA PERSON

4 SYSDBA OTHER

5 SYSDBA SYSDBA

6 SYSDBA PRODUCTION

7 SYSDBA PURCHASING

8 SYSDBA RESOURCES

9 SYSDBA SALES

10 SYSAUDITOR SYSAUDITOR

11 SYS CTISYS

行号 USERNAME SCHENMA


12 SYS SYS

13 DMHR DMHR

13 rows got

已用时间: 2.138(毫秒). 执行号:96.

SQL>

1、创建用户

达梦数据库创建用户的命令是 CREATE USER,创建用户所涉及的内容包括为用户指定用户名、认证模式、口令、口令策略、空间限制、只读属性以及资源限制。其中用户名是代表用户账号的标识符,长度为 1~128 个字符。用户名可以用双引号括起来,也可以不用,但如果用户名以数字开头,必须用双引号括起来。在创建用户前,需要提前规划并创建相关的表空间。

例如:创建用户DM8DBA,默认表空间为main,默认索引表空间为main,用户名密码为Dm8dba_123,用户密码策略为2,连续登陆失败3次后,用户自动锁定1分钟,用户密码过期宽限天数为10天。

SQL> create user DM8DBA identified by Dm8dba_123 password_policy 2 limit failed_login_attemps 3, password_lock_time 1, password_grace_time 10 default tablespace main default index tablespace main;

create user DM8DBA identified by Dm8dba_123 password_policy 2 limit failed_login_attemps 3, password_lock_time 1, password_grace_time 10 default tablespace main default index tablespace main;

第1 行附近出现错误[-5630]:非安全版本不能进行此操作.

已用时间: 2.998(毫秒). 执行号:0.

SQL> create user DM8DBA identified by Dm8dba_123 limit failed_login_attemps 3, password_lock_time 1, password_grace_time 10 default tablespace main default index tablespace main;

操作已执行

已用时间: 9.550(毫秒). 执行号:101.

SQL>

注意:如果要在创建用户时指定口令策略,必须使用达梦数据库安全版本,此处为非安全版本,是无法使用口令策略的,达梦数据库用户口令最长为 48 字节,创建用户语句中的 PASSWORD POLICY 子句用来指定该用户的口令策略,系统支持的口令策略有:

⚫ 0 无策略

⚫ 1 禁止与用户名相同

⚫ 2 口令长度不小于 9

⚫ 4 至少包含一个大写字母(A-Z)

⚫ 8 至少包含一个数字(0-9)

⚫ 16 至少包含一个标点符号(英文输入法状态下,除“和空格外的所有符号)

口令策略可单独应用,也可组合应用。组合应用时,如需要应用策略 2 和 4,则设置口令策略为 2+4=6 即可。若在创建用户时没有使用 PASSWORD POLICY 子句指定用户的口令策略,则使用系统的默认口令策略。系统管理员可通过SELECT * FROM V$PARAMETER WHERE NAME=’PWD_POLICY’;查询 PWD_POLICY 的当前值。

2、用户权限授予与回收

SQL> grant resource,public to dm8dba;

操作已执行

已用时间: 5.800(毫秒). 执行号:109.

SQL> revoke resource,public from dm8dba;

操作已执行

已用时间: 5.441(毫秒). 执行号:110.

SQL>

一般情况下,达梦数据库用户授予resource,public权限就可以了,需要其他权限可以联系DBA进行授予。

3、修改用户属性

例如:修改用户DM8DBA的默认索引表空间为dmhr。

SQL> alter user dm8dba default index tablespace dmhr;

操作已执行

已用时间: 7.522(毫秒). 执行号:112.

SQL>

达梦数据库修改用户属性使用alter user语句,创建用户和修改用户的详细语法可参考达梦官方安全管理手册。

4、查询用户信息

例如:查看DM8DBA用户的相关信息。

SQL> select * from dba_users where username = ‘DM8DBA’;

行号 USERNAME USER_ID PASSWORD ACCOUNT_STATUS LOCK_DATE


       EXPIRY_DATE

       ----------------------------------------------------------------------------------------------------

       DEFAULT_TABLESPACE TEMPORARY_TABLESPACE

       ------------------ --------------------

       CREATED

       ----------------------------------------------------------------------------------------------------

       PROFILE                        INITIAL_RSRC_CONSUMER_GROUP EXTERNAL_NAME PASSWORD_VERSIONS

       ------------------------------ --------------------------- ------------- -----------------

       EDITIONS_ENABLED AUTHENTICATION_TYPE

       ---------------- -------------------

       NOWDATE

       ----------------------------------------------------------------------------------------------------

1 DM8DBA 50331749 NULL OPEN NULL

       NULL

       MAIN               TEMP

       2021-12-30 21:47:08.580000

       E:\dmdbms\data\DAMENG\MAIN.DBF NULL                        NULL          2

       Y                NDCT_DB_AUTHENT

       2021-12-30 22:05:57

已用时间: 2.109(毫秒). 执行号:113.

SQL>

5、创建模式

例如:创建模式DM8DBA_SCH,属于DM8DBA用户。

SQL> create schema dm8dba_sch authorization dm8dba

2 /

操作已执行

已用时间: 1.185(毫秒). 执行号:115.

SQL>

这时,我们再来看看,DM8DBA用户下的模式信息。

SQL> select a.name as username, b.name as schenma from sysobjects a inner join sysobjects b on a.id = b.pid where b.subtype$ is null and a.name = ‘DM8DBA’;

行号 USERNAME SCHENMA


1 DM8DBA DM8DBA

2 DM8DBA DM8DBA_SCH

已用时间: 5.659(毫秒). 执行号:117.

SQL>

可以看到,DM8DBA用户有两个模式:DM8DBA和DM8DBA_SCM,模式DM8DBA是在创建用户时自动创建的,且与DM8DBA用户是同名的,这是达梦数据库默认的。

注意:命令行创建模式时,以/结束。

6、删除用户和模式

例如:删除模式DM8DBA_SCH,删除用户DM8DBA。

SQL> drop schema dm8dba_sch;

操作已执行

已用时间: 51.667(毫秒). 执行号:118.

SQL> drop user dm8dba;

操作已执行

已用时间: 52.364(毫秒). 执行号:119.

SQL>

SQL> select a.name as username, b.name as schenma from sysobjects a inner join sysobjects b on a.id = b.pid where b.subtype$ is null and a.name = ‘DM8DBA’;

未选定行

已用时间: 1.451(毫秒). 执行号:120.

SQL>

注意:在删除用户时,会删除用户底下所有的模式,所以在达梦数据库中,如果一个用户有多个模式,在删除一个模式时,千万注意不能使用drop user的方式,要用drop schema删除。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服