0
点赞
收藏
分享

微信扫一扫

DM8用户管理

用户管理

DM 默认的预定义用户:

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

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

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

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

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

系统口令策略

PWD_POLICY(隐含参数,不在 dm.ini 中)参数指定系统的口令策略,默认为 2;

系统支持的口令策略有:

⚫ 0 无策略

⚫ 1 禁止与用户名相同

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

⚫ 4 至少包含一个大写字母(

A-Z)

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

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

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

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

PWD_POLICY 是隐含参数,PWD_POLICY,只能通过函数或 SQL 语句修改。

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

create user hr IDENTIFIED by dameng123;

修改系统口令策略:

alter SYSTEM set 'PWD_POLICY' = 15 BOTH;

SQL 管理用户

create user hrtest IDENTIFIED by dameng123;

DM8用户管理_sql

DM8用户管理_sql_02

用户输入错误多次(默认 3 次),将会被锁定。

select * from dba_users;

select b.USERNAME,a.* from sysusers a, dba_users b where a.id = b.USER_ID;

DM8用户管理_强制访问控制_03

创建用户

create user hrtest IDENTIFIED by Dameng123 DEFAULT TABLESPACE TBSTEST;

用户锁定和解锁:

alter user hr ACCOUNT UNLOCK;

alter user hr ACCOUNT LOCK;

修改用户的默认表空间:

alter user hr DEFAULT TABLESPACE dmtbs;

DM8用户管理_强制访问控制_04

修改用户密码:

alter user hrtest IDENTIFIED by "Dameng@123";

删除用户:

drop user if EXISTS hr;

drop user if EXISTS hr CASCADE; --生产环境慎用

用户资源限制

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

alter user hr LIMIT FAILED_LOGIN_ATTEMPS 5, PASSWORD_LOCK_TIME 3;

DM 支持使用 profile 管理用户资源限制(新版本支持,2021 年 10 月以后的版本)

select * from DBA_PROFILES;

create profile profile1 limit FAILED_LOGIN_ATTEMPS 5, PASSWORD_LOCK_TIME 3,

PASSWORD_LIFE_TIME 180;

alter user hrtest PROFILE profile1;

DM8用户管理_sql_05

--查询用户使用的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;

DM8用户管理_强制访问控制_06

用户的资源限制也可以查询如下数据字典:

select * from sysusers;

密码带有特殊字符的登录处理

达梦中密码带有特殊字符需要双引号括起来,在 linux 系统下可以使用单引号‘转义。

[dmdba@KylinDCA03 ~]$ disql hrtest/'"Dameng@123"'

服务器[LOCALHOST:5236]:处于普通打开状态

登录使用时间 : 1.589(ms)

disql V8

SQL> conn hrtest/"Dameng@123"

DM8用户管理_强制访问控制_07

也可以使用右斜杠\转义

[dmdba@localhost ~]$ disql dmoa/\"Dameng@123\"

服务器[LOCALHOST:5236]:处于普通打开状态

登录使用时间 : 3.162(ms)

disql V8

SQL> alter user dmoa identified by "Dameng123@#'";

操作已执行

已用时间: 6.184(毫秒). 执行号:1000.

SQL> exit

[dmdba@localhost ~]$ disql dmoa/\"Dameng123@#\'\"

服务器[LOCALHOST:5236]:处于普通打开状态

登录使用时间 : 1.863(ms)

disql V8

SQL>

DM8用户管理_ide_08

DM 管理工具管理用户

DM8用户管理_强制访问控制_09

DM8用户管理_sql_10

DM8用户管理_sql_11

DM8用户管理_强制访问控制_12

DM8用户管理_ide_13

DM8用户管理_ide_14

权限管理

DM8用户管理_ide_15

赋予数据库权限(系统权限):

SQL> grant create table to hrtest;

操作已执行

已用时间: 3.431(毫秒). 执行号:1700.赋予数据库权限(系统权限):

SQL> grant create table to hrtest;

操作已执行

已用时间: 3.431(毫秒). 执行号:1700.

DM8用户管理_强制访问控制_16

赋予对象权限:

DM8用户管理_强制访问控制_17

SQL> grant select on dmhr.employee to hrtest;

操作已执行

已用时间: 0.535(毫秒). 执行号:1703.

DM8用户管理_ide_18

DM8用户管理_强制访问控制_19

查看当前用户拥有的权限:

select * from session_privs;

DM8用户管理_强制访问控制_20

权限的回收:

SQL> revoke select on dmhr.employee from hrtest;

操作已执行

已用时间: 1.792(毫秒). 执行号:1704.

SQL> revoke create table from hrtest;

操作已执行

已用时间: 1.704(毫秒). 执行号:1705

赋予查询对象权限,精确到列

SQL> grant select (employee_id, employee_name) on dmhr.employee to hrtest;

操作已执行

已用时间: 2.175(毫秒). 执行号:1706.

DM8用户管理_ide_21

相关数据字典:

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

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

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

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

ENABLE_DDL_ANY_PRIV 指定,默认为 0。

grant select any table to hrtest;

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

DM8用户管理_ide_22

alter SYSTEM set 'ENABLE_DDL_ANY_PRIV' = 1 both; --开启后可正常赋予权限

grant create any table to hrtest;

grant create any index to hrtest;

题目:1、赋予 test 用户更新 emp 表的权限;

2、 赋予 test 用户删除 emp 表的权限。

赋予表更新或删除权限,同时要赋予查询权限,否则报错:

DM8用户管理_强制访问控制_23

DM8用户管理_sql_24

角色管理

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

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

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

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

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

VTI:具有查询 v$开头的动态视图权限(动态视图记录在 v$dynamic_tables,如果没有此权

限,DM 管理工具上会报没有查询 v$视图权限)

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

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

select * from dba_roles;

create role r1;

grant create table to r1;

grant select on dmhr.department to r1;

grant r1 to hrtest;

sp_set_role('R1',0) --角色禁用和启用,禁用后角色权限将不在生效。

DM 管理工具创建角色:

DM8用户管理_ide_25

DM8用户管理_sql_26

DM8用户管理_ide_27

DM8用户管理_sql_28

赋予对象权限增加 with grant option 说明权限可以转授,回收时要增加 cascade 关键字级联

回收权限,否则报错:

DM8用户管理_强制访问控制_29

权限相关常见问题

DM 管理工具选择表,查看表信息报错(缺少 v$ciphers 视图的查询权限,可以使用 SYSDBA

给登录用户(如 dmtest)赋予 VTI 角色,或者单独给用户 v$ciphers 对象的查询权限)):

DM8用户管理_sql_30

举报

相关推荐

0 条评论