SQL> select username from dba_users;
1、sys -----达梦数据库内置管理用户,不能登录数据库,数据库使用的大部分的数据字典和动态性能视图sys。
2、Sysdba -----数据库的管理员
3、Sysauditor—审计用户
4、Syssso—安全用户
5、Sysdbo—数据操作员(安全版,四权分立)
如何规划用户?
用户名要求:字母开头,a-z,0-9,$#_
用户密码最长为48个字节,创建用户语句时使用 password policy子句来指定口令策略。
DM.INI PWD_POLICY
系统支持的口令策略:
0 无策略
1 禁止与用户名相同
2 口令长度不小于9
4 至少包含一个大写字母(A-Z)
8 至少包含一个数字(0-9)
16 至少包含一个标点符号(英文状态输入,除”和空格外)
口令策略可单独使用,也可组合应用,比如:需要应用策略4和8,则设置口令策略为 4+8=12
密码尝试登录次数: FAILED_LOGIN_ATTEMPS
密码失败锁定时间: PASSWORD_LOCK_TIME
密码过期时间: PASSWORD_LIFE_TIME
SQL> select b.username, a.failed_num, a.failed_attemps from sysusers a right join all_users b on a.id=b.user_id;
案例:为数据库设置一个用户,该账户,可以创建自己表,有属于自己的独立的表空间,用户的密码要求每60天变更一次。
创建表空间:
SQL> create tablespace test datafile ‘/dm7/data/DAMENG/test01.dbf’ size 32;
创建用户:
SQL> create user test identified by Dameng1234 limit password_life_time 60 default tablespace test;
系统权限: create drop alter 能够对数据库做什么操作。
对象权限: (表,视图,过程等等)select ,delete,update,insert
案例1:
查看角色:
SQL> select role from dba_roles;
查看用户权限:
SQL> select grantee,granted_role from dba_role_privs where grantee='TEST';
SQL> select grantee,privilege from dba_sys_privs where grantee='PUBLIC';
SQL> grant create table to test;
案例2:规划一个用户,账户60天变更一次密码,密码尝试连接2次失败,账户锁定5分钟,用户还可以查询dmhr.employee表。
SQL> create user test1 identified by Test12345 limit password_life_time 60,failed_login_attemps 2,password_lock_time 5;
SQL> select b.username, a.failed_num, a.failed_attemps,a.lock_time from sysusers a right join all_users b on a.id=b.user_id;
SQL> select USERNAME,ACCOUNT_STATUS,LOCK_DATE from dba_users where username='TEST1';
SQL> alter user test1 account unlock;
一般情况,创建完用户,给resource角色,就基本上可以满足需求。具体需要根据生产环境的来。
案例3:
企业招聘一批录入人员,权限是固定的,只能录入city表。
角色:一类权限的集合。把某些特定的权限给一个固定的角色,然后再把角色分给用户。
SQL> create user test2 identified by Test12345;
SQL> create role r1;
SQL> grant insert on dmhr.city to r1;
SQL> grant references any table to r1;
SQL> grant r1 to test2;
SQL> conn test2/Test12345
SQL> insert into dmhr.city(city_id,city_name,region_id) values ('HS','洪山',7);
SQL> alter user TEST limit password_life_time unlimited;
操作已执行
已用时间: 2.473(毫秒). 执行号:5.
SQL> revoke insert on dmhr.city from r1;
SQL> alter user test2 identified by Dameng12345;
SQL> alter user test account lock;
SQL> alter user test account unlock;
SQL> drop user test2;
SQL> drop user test cascade; ----慎用,删除前做备份!
SQL> drop role r1;