达梦用户管理

DM数据库的用户管理涉及用户、权限和角色,包括创建用户的语法、口令策略、资源限制等。安全机制实行“三权分立”或“四权分立”,分别有数据库管理员、数据库安全员和数据库审计员等角色,确保系统安全。用户管理可通过DM的管理工具进行,包括查看用户信息、角色分配和权限管理等操作。
摘要由CSDN通过智能技术生成

在DM数据库中用户管理主要涉及到三块:用户、权限、和角色。这里涉及到2个概念,用户和模式,在Oracle里也存在这2个概念。 用户是用来连接数据库并进行相关操作的。 而模式是一个用户拥有的所有数据库对象的集合,每个用户都有自己默认的模式,用户默认的模式名和用户名相同。

从DM的官方手册,我们可以看到创建用户的语法:

CREATE USER <用户名> IDENTIFIED <身份验证模式> [PASSWORD_POLICY <口令策略>][<锁定子句>][<存储加密密钥>][<空间限制子句>][<只读标志>][<资源限制子句>][<允许 IP 子句>][<禁止 IP 子句>][<允许时间子句>][<禁止时间子句>][<TABLESPACE 子句>][<INDEX_TABLESPACE 子句>];

这里面的选项很多,但在实际使用中主要涉及如下几点:用户名、密码、资源限制、模式、默认表空间和权限。

  1. <用户名> 指明要创建的用户名称,用户名称最大长度 128 字节;

  2. <口令策略>可以为以下值,或其任何组合:
    0 无策略;
    1 禁止与用户名相同;
    2 口令长度不小于 9;
    4 至少包含一个大写字母(A-Z);
    8 至少包含一个数字(0-9);
    16 至少包含一个标点符号(英文输入法状态下,除“ 和空格外的所有符号)。
    若为其他数字,则表示以上设置值的和,如 3=1+2,表示同时启用第 1 项和第 2 项策略。当设置为 0 时,表示设置口令没有限制,但总长度不得超过 48 个字节。另外,若不指定该项,则默认采用系统配置文件中 PWD_POLICY 所设值。

  3. 空间限制子句用于限制用户使用的最大存储空间,以 M 为单位,取值范围为 1 到1048576,关键字 UNLIMITED 表示无限制;

  4. 只读标志表示该登录是否只能对数据库作只读操作,默认为可读写;

  5. 完整的资源设置项可以参考官方手册。这里列几个常用的配置项:
    SESSION_PER_USER:实例中用户可以同时拥有的会话数量,最大为32768,默认值是OS提供的最大值。
    CONNECT_IDLE_TIME: 会话最大空闲时间(单位:1 分钟),默认为无限制。
    FAILED_LOGIN_ATTEMPS:将引起一个账户被锁定的连续注册失败的次数,设置范围1到 100,默认为3。
    PASSWORD_LOCK_TIME:如果超过FAILED_LOGIN_ATTEMPS 设置值, 账户将被锁定的分钟数。最大为1440(1 天),默认为1.
    PASSWORD_LIFE_TIME: 口令在其终止前可以使用的天数,设置范围1到 365,默认为无限制。
    6.如果没有指定用户默认表空间,则系统指定 MAIN 表空间为用户的默认表空间;用户默认表空间和索引默认表空间不能使用SYSTEM、RLOG、ROLL、TEMP 表空间。

  6. 如果没有指定用户默认索引表空间,则 HUGE 表的索引缺省存储在用户的默认表空间中,普通表的索引缺省存储在表的聚集索引所在的表空间中。临时表的索引永远在 TEMP 表空间;

  7. 系统预先设置了四个用户,分别为 SYSDBA、SYSAUDITOR、 SYSSSO 和SYS,其中SYSDBA 具备 DBA 角色,SYSAUDITOR 具备 DB_AUDIT_ADMIN 角色,而 SYSSSO具备 DB_POLICY_ADMIN 系统角色;

  8. 权限是指执行特定类型SQL命令或访问其他模式对象的权利,它用于限制用户可执行的操作。权限分两种:

    1. 系统权限:主要指对数据库对象的创建、删除、修改、已经备份恢复等权限
    2. 对象权限:主要指对数据库对象中的数据的操作权限。

    角色是将具有相同权限的用户组织在一起,这一组具有相同权限的用户称为角色。 角色是权限的集合,一个权限可赋予不用的角色。
    数据库管理类的预定义角色有三个: DBA、PUBLIC、RESOURCE。

用户类型

DM 数据库实现了 B1 级安全特性。

  1. “三权分立”的安全机制,将系统管理员分数据库管理员、数据库安全员和数据库审计员三类。在安装过程中,DM 数据库会预设数据库管理员账号SYSDBA、数据库安全员账号 SYSSSO 和数据库审计员账号 SYSAUDITOR,其缺省口令都与用户名一致。
  2. “四权分立”的安全机制,将系统管理员分数据库管理员、数据库对象操作员、数据库安全员和数据库审计员四类,在“三权分立”的基础上,新增数据库对象操作员账户SYSDBO,其缺省口令为 SYSDBO。用户需要在安装过程中或者安装完毕后立即修改缺省口令,避免因口令泄漏造成的安全问题。

数据库管理员

“三权分立”的安全机制,每个 DM 数据库至少需要一个数据库管理员来管理,负责评估数据库运行所需的软、硬件环境、安装和升级 DM 数据库、配置 DM 数据库参数、创建主要的数据库存储结构(表空间)和对象(如表、视图、索引、角色、用户等)、监控和优化数据库性能、数据导入导出以及数据库的备份和恢复等。

“三权分立”时数据库管理员既可进行系统管理和维护工作,也可对数据内容进行增删查改动作。根据国产数据库军事使用要求,数据库管理员只能进行系统管理和维护工作,不能对数据内容进行增删查改,数据库应用人员则可操作数据内容,而不能管理和维护系统。

“四权分立”的安全机制,在原有“三权分立”基础上调整自主访问控制权限,只具有“三权分立”中 DBA 角色预设的一部分与数据库管理相关的明确的数据库权限,如数据库创建、备份、还原和校验等。

数据库安全员

对于很多对安全性要求不高的系统来说,C2 级安全特性已经能够工作得很好,此时不需要考虑通过数据库安全员来进一步加强系统的安全机制。但是在很多大型的系统中,安全性还是至关重要的,有必要由安全员来制定安全策略,强化系统安全机制,此时数据库安全员的主要任务就是制定安全策略,定义新的数据库安全员,设置系统的安全等级、范围和组,并为主、客体定义安全标记,从而全面提升系统安全性。

数据库审计员

数据库审计员可以设置要审计的对象和操作、定义新的数据库审计员、查看和分析审计记录。通过设置审计,几乎可以跟踪任何人在系统内执行的任何操作,为事后追查提供便利。

数据库对象操作员

数据库对象操作员是“四权分立”新增加的一类用户,可以创建数据库对象,并对自己拥有的数据库对象(表、视图、存储过程、序列、包、外部链接)具有所有的对象权限并可以授出与回收,但其无法管理与维护数据库对象。

查看用户

所有的用户管理操作都可以在DM 的管理工具中进行,我们这里通过视图查看相应的权限信息。

dmdba@yankai-linux:/dm8/bin$ ./disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 15.687(ms)
disql V8
#查看所有角色:
SQL> select * from dba_roles;

行号     ROLE             PASSWORD_REQUIRED AUTHENTICATION_TYPE
---------- ---------------- ----------------- -------------------
1          DBA              NULL              NULL
2          DB_AUDIT_ADMIN   NULL              NULL
3          DB_AUDIT_OPER    NULL              NULL
4          DB_AUDIT_PUBLIC  NULL              NULL
5          DB_AUDIT_SOI     NULL              NULL
6          DB_AUDIT_SVI     NULL              NULL
7          DB_AUDIT_VTI     NULL              NULL
8          DB_POLICY_ADMIN  NULL              NULL
9          DB_POLICY_OPER   NULL              NULL
10         DB_POLICY_PUBLIC NULL              NULL
11         DB_POLICY_SOI    NULL              NULL

行号     ROLE          PASSWORD_REQUIRED AUTHENTICATION_TYPE
---------- ------------- ----------------- -------------------
12         DB_POLICY_SVI NULL              NULL
13         DB_POLICY_VTI NULL              NULL
14         PUBLIC        NULL              NULL
15         RESOURCE      NULL              NULL
16         SOI           NULL              NULL
17         SVI           NULL              NULL
18         SYS_ADMIN     NULL              NULL
19         VTI           NULL              NULL

19 rows got

已用时间: 154.283(毫秒). 执行号:900.

#查看所有用户的信息:
SQL> select username,user_id,account_status from dba_users;

行号     USERNAME   USER_ID     ACCOUNT_STATUS
---------- ---------- ----------- --------------
1          SYS        50331648    OPEN
2          SYSDBA     50331649    OPEN
3          SYSAUDITOR 50331650    OPEN
4          SYSSSO     50331651    OPEN

已用时间: 668.414(毫秒). 执行号:901.

#查看系统中所有用户对应的角色:
SQL>  select * from dba_role_privs;

行号     GRANTEE    GRANTED_ROLE     ADMIN_OPTION DEFAULT_ROLE
---------- ---------- ---------------- ------------ ------------
1          SYSDBA     DBA              Y            NULL
2          DBA        VTI              Y            NULL
3          SYSSSO     DB_POLICY_SOI    Y            NULL
4          SYSSSO     DB_POLICY_PUBLIC Y            NULL
5          SYSSSO     DB_POLICY_OPER   Y            NULL
6          SYSSSO     DB_POLICY_ADMIN  Y            NULL
7          SYSAUDITOR DB_AUDIT_SOI     Y            NULL
8          SYSAUDITOR DB_AUDIT_PUBLIC  Y            NULL
9          SYSAUDITOR DB_AUDIT_OPER    Y            NULL
10         SYSAUDITOR DB_AUDIT_ADMIN   Y            NULL
11         SYSDBA     SOI              Y            NULL

行号     GRANTEE          GRANTED_ROLE  ADMIN_OPTION DEFAULT_ROLE
---------- ---------------- ------------- ------------ ------------
12         SYSDBA           SYS_ADMIN     N            NULL
13         SYSDBA           PUBLIC        Y            NULL
14         SYSDBA           RESOURCE      Y            NULL
15         PUBLIC           SVI           N            NULL
16         DB_AUDIT_ADMIN   DB_AUDIT_VTI  Y            NULL
17         DB_AUDIT_PUBLIC  DB_AUDIT_SVI  N            NULL
18         DB_POLICY_PUBLIC DB_POLICY_SVI N            NULL
19         DB_POLICY_ADMIN  DB_POLICY_VTI Y            NULL

19 rows got

已用时间: 151.714(毫秒). 执行号:902.

#通过dba_sys_privs视图可以查看系统中角色对应的权限。 
SQL> select distinct grantee from dba_sys_privs;

行号     GRANTEE        
---------- ---------------
1          SYS
2          SYSDBA
3          SYSAUDITOR
4          SYSSSO
5          DBA
6          RESOURCE
7          PUBLIC
8          DB_AUDIT_ADMIN
9          DB_AUDIT_OPER
10         DB_AUDIT_PUBLIC
11         DB_POLICY_ADMIN

行号     GRANTEE         
---------- ----------------
12         DB_POLICY_OPER
13         DB_POLICY_PUBLIC

13 rows got

已用时间: 15.624(毫秒). 执行号:903.

用户操作

dmdba@yankai-linux:/dm8/bin$ ./disql SYSDBA/SYSDBA

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

#创建用户:
SQL> create user test identified by "www.cndba.cn" limit connect_time 3;
操作已执行
已用时间: 500.453(毫秒). 执行号:1000.

#对用户授权:
SQL> grant public,resource to test;
操作已执行
已用时间: 125.277(毫秒). 执行号:1001.

#登录test用户
SQL> conn test/"www.cndba.cn"

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 4.374(ms)

#查看当前用户:
SQL> select username from user_users;

行号     USERNAME
---------- --------
1          TEST

已用时间: 00:00:01.256. 执行号:1100.
SQL> select user();

行号     USER()
---------- ------
1          TEST

已用时间: 27.566(毫秒). 执行号:1101.

dmdba@yankai-linux:/dm8/bin$ ./disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 6.370(ms)
disql V8
SQL> create table dave as select * from sysobjects;
操作已执行
已用时间: 214.930(毫秒). 执行号:1200.
SQL> select count(1) from dave;

行号     COUNT(1)            
---------- --------------------
1          915

已用时间: 103.765(毫秒). 执行号:1201.

#可以通过sysusers 数据字典查看这些资源的修改值:
SQL> desc sysusers;

行号     NAME           TYPE$        NULLABLE
---------- -------------- ------------ --------
1          ID             INTEGER      N
2          PASSWORD       VARCHAR(512) Y
3          AUTHENT_TYPE   INTEGER      N
4          SESS_PER_USER  INTEGER      N
5          CONN_IDLE_TIME INTEGER      N
6          FAILED_NUM     INTEGER      N
7          LIFE_TIME      INTEGER      N
8          REUSE_TIME     INTEGER      N
9          REUSE_MAX      INTEGER      N
10         LOCK_TIME      INTEGER      N
11         GRACE_TIME     INTEGER      N

行号     NAME            TYPE$        NULLABLE
---------- --------------- ------------ --------
12         LOCKED_STATUS   SMALLINT     N
13         LASTEST_LOCKED  DATETIME(0)  Y
14         PWD_POLICY      INTEGER      Y
15         RN_FLAG         INTEGER      Y
16         ALLOW_ADDR      VARCHAR(500) Y
17         NOT_ALLOW_ADDR  VARCHAR(500) Y
18         ALLOW_DT        VARCHAR(500) Y
19         NOT_ALLOW_DT    VARCHAR(500) Y
20         LAST_LOGIN_DTID VARCHAR(128) Y
21         LAST_LOGIN_IP   VARCHAR(128) Y
22         FAILED_ATTEMPS  INTEGER      Y

行号     NAME        TYPE$        NULLABLE
---------- ----------- ------------ --------
23         ENCRYPT_KEY VARCHAR(256) Y

23 rows got

已用时间: 315.676(毫秒). 执行号:1202.

#删除用户:
SQL> drop user test cascade;
操作已执行
已用时间: 00:00:01.058. 执行号:1203.
SQL> select username from dba_users;

行号     USERNAME  
---------- ----------
1          SYS
2          SYSDBA
3          SYSAUDITOR
4          SYSSSO

已用时间: 17.442(毫秒). 执行号:1204.

https://eco.dameng.com/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值