达梦数据库之用户管理

DM默认有的账号:

SYS:系统内置用户,不允许登录。

SYSDBA:系统管理员,拥有几乎所有权限(除审计和强制访问控制)。

SYSAUDITOR:系统审计管理员,具有审计相关权限。

SYSSSO:系统安全管理员,具有强制访问控制等权限。

SYSDBO:安全版本才有的用户,安全操作员。

系统支持的口令策略有:

⚫ 0 无策略

⚫ 1 禁止与用户名相同

⚫ 2 口令长度需大于等于 INI 参数 PWD_MIN_LEN 设置的值

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

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

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

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

令策略为 2+4=6 即可。

SQL> select * from v$parameter t where t.name = 'PWD_POLICY';

行号 ID NAME TYPE VALUE SYS_VALUE FILE_VALUE DESCRIPTION DEFAULT_VALUE ISDEFAULT

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

1 463 PWD_POLICY SYS 2 2 2 Flag of password policy 2 1

已用时间: 9.016(毫秒). 执行号:532.

SQL> select * from v$parameter t where t.name = 'PWD_MIN_LEN';

行号 ID NAME TYPE VALUE SYS_VALUE FILE_VALUE DESCRIPTION DEFAULT_VALUE ISDEFAULT

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

1 464 PWD_MIN_LEN SYS 9 9 9 Password min length in byte, it's valid only if PWD_POLICY&2 not equal to 0 9 1

已用时间: 5.268(毫秒). 执行号:533.

SQL> create user test identified by test1234;

create user test identified by test1234;

第1 行附近出现错误[-2504]:密码长度不符合要求.

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

SQL> create user test identified by test12345;

操作已执行

已用时间: 68.732(毫秒). 执行号:534.

密码策略为2时,密码的长度要大于9位。

SQL> select name,type,value,SYS_VALUE,FILE_VALUE from v$parameter where name = 'PWD_POLICY';

行号 NAME TYPE VALUE SYS_VALUE FILE_VALUE

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

1 PWD_POLICY SYS 2 2 2

已用时间: 5.854(毫秒). 执行号:537.

SQL> alter system set 'PWD_POLICY' = 15 both;

DMSQL 过程已成功完成

已用时间: 3.961(毫秒). 执行号:538.

SQL> select name,type,value,SYS_VALUE,FILE_VALUE from v$parameter where name = 'PWD_POLICY';

行号 NAME TYPE VALUE SYS_VALUE FILE_VALUE

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

1 PWD_POLICY SYS 15 15 15

已用时间: 5.897(毫秒). 执行号:539.

用普通用户错误登录3次:

SQL> select b.USERNAME,b.LOCK_DATE,a.LOCKED_STATUS,a.PWD_POLICY,a.FAILED_ATTEMPS from sysusers a, dba_users b where a.id = b.USER_ID and b.username='TEST';

行号 USERNAME LOCK_DATE LOCKED_STATUS PWD_POLICY FAILED_ATTEMPS

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

1 TEST 2022-10-19 02:02:18 1 2 3

SQL> select username,account_status from dba_users;

行号 USERNAME ACCOUNT_STATUS

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

1 SYSAUDITOR OPEN

2 SYSSSO OPEN

3 SYSDBA OPEN

4 TEST LOCKED

5 SYS OPEN

已用时间: 65.457(毫秒). 执行号:1400.

SQL> alter user test account unlock;

操作已执行

已用时间: 10.547(毫秒). 执行号:1401.

SQL> select username,account_status from dba_users;

行号 USERNAME ACCOUNT_STATUS

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

1 SYSAUDITOR OPEN

2 SYSSSO OPEN

3 SYSDBA OPEN

4 TEST OPEN

5 SYS OPEN

已用时间: 2.437(毫秒). 执行号:1402.

更改用户的默认表空间:

SQL> alter user test default tablespace test01;

操作已执行

已用时间: 2.720(毫秒). 执行号:1403.

更改用户密码:

SQL> alter user test identified by "Dameng_test";

操作已执行

已用时间: 6.176(毫秒). 执行号:1404.

删除用户:

SQL> drop user test cascade; --生产环境慎用cascade。

操作已执行

已用时间: 360.997(毫秒). 执行号:1405.

用户的资源限制:

用户资源限制设置(可以直接使用 limit 子句,也可以使用 profile 来管理用户的资源限制)

用子句:

SQL> alter user test LIMIT FAILED_LOGIN_ATTEMPS 10,PASSWORD_LOCK_TIME 10;

操作已执行

已用时间: 2.777(毫秒). 执行号:1408.

创建一个profile profile1,使用profile来管理用户的资源限制。

SQL> create profile profile1 limit FAILED_LOGIN_ATTEMPS 10,PASSWORD_LOCK_TIME 10,PASSWORD_LIFE_TIME 180;

操作已执行

已用时间: 2.587(毫秒). 执行号:1409.

SQL> alter user test profile profile1;

操作已执行

已用时间: 6.332(毫秒). 执行号:1410.

查询用户使用的profile资源限制文件:

select a.pid profileid, b.name profile_name, a.uid userid, c.name user_name

from SYSUSERPROFILES a, SYSOBJECTS b, SYSOBJECTS c

where a.PID = b.id and a.UID = c.ID;

行号 PROFILEID PROFILE_NAME USERID USER_NAME

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

1 469762148 PROFILE1 50331750 TEST

已用时间: 1.410(毫秒). 执行号:1411.

查看用户相关权限:

select * from dba_sys_privs t where t.GRANTEE= 'TEST';

select * from dba_role_privs t where t.GRANTEE= 'TEST';

select * from dba_tab_privs t where t.GRANTEE= 'TEST';

DM 默 认 不 能 授 予 用 户 在 其 他 模 式 下 数 据 定 义 ( DDL ) 的 权 限 , 由 参 数

ENABLE_DDL_ANY_PRIV 指定,默认为 0。

SQL> grant create any table to test;

grant create any table to test;

第1 行附近出现错误[-5567]:授权者没有此授权权限.

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

SQL> select * from v$parameter t where name like '%ENABLE_DDL_ANY_PRIV%';

行号 ID NAME TYPE VALUE SYS_VALUE FILE_VALUE DESCRIPTION DEFAULT_VALUE ISDEFAULT

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

1 495 ENABLE_DDL_ANY_PRIV SYS 0 0 0 Whether enable grant and

revoke ddl any privilege. 0 1

已用时间: 8.062(毫秒). 执行号:1505.

SQL> alter system set 'ENABLE_DDL_ANY_PRIV' = 1 both;

DMSQL 过程已成功完成

已用时间: 43.465(毫秒). 执行号:1506.

SQL> select * from v$parameter t where name like '%ENABLE_DDL_ANY_PRIV%';

行号 ID NAME TYPE VALUE SYS_VALUE FILE_VALUE DESCRIPTION DEFAULT_VALUE ISDEFAULT

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

1 495 ENABLE_DDL_ANY_PRIV SYS 1 1 1 Whether enable grant and revoke ddl any privilege. 0 0

已用时间: 14.931(毫秒). 执行号:1507.

SQL> grant create any table to test;

操作已执行

已用时间: 3.878(毫秒). 执行号:1508.

角色是权限的集合,角色使权限管理更加方便。

DBA:具有几乎所有权限(除审计和强制访问控制之外),默认赋给 SYSDBA 用户。

PUBLIC:具有对当前模式下对象的 DML 数据操作权限。

RESOURCE:具有在当前模式下对象定义权限(创建表、索引、视图等);

SOI:具有查询 sys 开头系统表的权限;

VTI:具有查询 v$开头的动态视图权限(动态视图记录在 v$dynamic_tables,如果没有此权限,DM 管理工具上会报没有查询 v$视图权限)

DB_AUDIT_开头的角色是审计相关角色,具有审计相关权限,默认赋给 SYSAUDITOR。

DB_POLICY_开头的角色是安全相关角色,具有强制访问控制等权限,默认赋给 SYSSSO。

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

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

已用时间: 0.557(毫秒). 执行号:1511.

SQL> create role role1;

操作已执行

已用时间: 3.797(毫秒). 执行号:1517.

SQL> grant select any table to role1;

操作已执行

已用时间: 4.059(毫秒). 执行号:1518.

SQL> grant create any table to role1;

操作已执行

已用时间: 2.705(毫秒). 执行号:1519.

SQL> grant role1 to test;

操作已执行

已用时间: 3.665(毫秒). 执行号:1520.

SQL> select * from dba_role_privs where GRANTED_ROLE='ROLE1';

行号 GRANTEE GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE

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

1 SYSDBA ROLE1 Y NULL

2 TEST ROLE1 N NULL

已用时间: 2.386(毫秒). 执行号:1523.

角色禁用和启用,禁用后角色权限将不在生效。

SQL> sp_set_role('ROLE1',0); ---不生效

DMSQL 过程已成功完成

已用时间: 29.238(毫秒). 执行号:1526.

SQL> sp_set_role('ROLE1',1); ---生效

DMSQL 过程已成功完成

已用时间: 32.781(毫秒). 执行号:1527.

社区地址:https://eco.dameng.com

猜你喜欢

转载自blog.csdn.net/duanpian_dba/article/details/127646702