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