DM7用户管理

DM7用户管理

  1. 达梦数据库默认用户

SQL>select username from dba_users;

DM7用户管理

  • sys ---达梦数据库的内置管理用户,不能登录数据库,数据库使用的大部分的数据字典和动态性能视图使用sys
  • Sysdba---数据库的管理员
  • Sysauditor----审计用户
  • Syssso---安全用户
  • Sysdbo----数据操作员 (安全版有,四权分立)
  1. 用户及密码规则

用户名称:指明要创建的用户名称,用户名称最大长度128字节;字母开头,可为a---z,0-9,$#_

密码:

口令策略:

用户密码最长为48个字节,创建用户语句password policy子句来指定口令策略。(dm.ini  pwd_policy)

系统支持的口令策略

0:无策略

1:禁止与用户名相同

2:口令长度不小于9

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

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

16:至少包含一个标点符号(英文状态输入,除”和空格除外)

口令可以单独使用,也可以组合使用,比如需要策略1和2

则设置口令策略为3

密码尝试登录次数:faild_login_attemps

密码失败锁定时间:password_lock_time

密码过期时间:password_life_time

Sysusers,  all_users ,  dba_users

案例1:为数据库设置一个用户,该账户,可以创建自己的表,有属于自己的独立表空间,用户密码要求每60天变更一次。

SQL> create tablespace tmr_test datafile '/dm7/data/DM_HBL/tmr_test01.dbf' size 32;

SQL> create user tmr_test identified by dameng123 limit password_life_time 60 default tablespace tmr_test;

SQL>select * from all_users;

DM7用户管理

 

DM7用户管理

  1. 用户角色与权限管理

系统权限(create,drop,alter 能够对数据库做什么操作)

对象权限(表,视图,过程等等)select delete update insert

角色:dba_roles;

查看用户角色。

SQL> select role from dba_roles;

DM7用户管理

查看用户权限

SQL> select grantee,granted_role from dba_role_privs where grantee='TMR_TEST';

DM7用户管理

SQL> select grantee,privilege from dba_sys_privs where grantee='PUBLIC';

DM7用户管理

用户授权

SQL> grant create table to tmr_test;

DM7用户管理

 

实例2:规划一个用户,账户每60天变更一次密码,密码尝试连接2次失败,账户锁定5分钟,用户可以创建新表,还可以查询dmhr.employee表。

SQL> create user tmr_test1 identified by dameng123 limit password_life_time 60,failed_login_attemps 2, password_lock_time 5;

 

 

    用户授权创建表的权限

SQL> grant create table to tmr_test1;

用户授权查询表的权限

SQL> grant select on dmhr.employee to tmr_test1;

用户授权查询表中某些字段的权限

SQL> grant select(employee_name,HIRE_DATE) on dmhr.employee to tmr_test1;

回收用户查询某个表的权限

SQL> revoke select on dmhr.employee from tmr_test1;

   查询用户状态,是否锁定,锁定时间。

SQL> select USERNAME,ACCOUNT_STATUS,LOCK_DATE from dba_users;

解除用户锁定。

SQL> alter user tmr_test1 account unlock;

create table tt1 (id int ,name varchar(32));

实例3:批量分配权限,权限是固定的。

角色:一类权限的集合,为了简化权限的管理,把一类用户具有的权限,集中到某个特定的角色上,把角色分给用户,方便管理。

SQL> create user tmr_test2 identified by dameng123;

创建角色

SQL> create role r1;

给角色授权

SQL> grant insert on dmhr.city to r1;

SQL> grant select on dmhr.city to r1;

SQL> grant create table to r1;

将角色授权给用户

SQL> grant r1 to tmr_test2;

SQL> conn tmr_test2/dameng123

DM7用户管理

授权角色有引用的权限

SQL> grant references any table to r1;

DM7用户管理

注意:一般情况下,创建完用户,把resource角色给用户,基本可以满足需求,对象权限,要求根据实际生产环境的要求去赋给。

  1. 用户维护

收回权限:revoke

SQL> revoke insert on dmhr.city from r1;

 

修改用户密码

alter user tmr_test2 identified by dameng123456;

锁定用户

alter user tmr_test2 account lock;

解锁用户

alter user tmr_test2 account unlock;

删除用户

drop user tmr_test2;

下面删除操作,如果用户所属数据表有数据,也会删除,慎用,删除之前,做好备份。

drop user tmr_test2 cascde;

删除角色

SQL> drop role r1;