暂无图片
暂无图片
7
暂无图片
暂无图片
暂无图片

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

原创 始于脚下 2021-12-30
3767

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

用户(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删除。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论