2. 用户管理
1. 基础管理
SQL > show user
SQL > SELECT * FROM user_users;
SQL > select * from role_sys_privs;
SQL > select * from user_role_privs;
SQL > select * from dba_users;
SQL > CREATE USER test IDENTIFIED BY test123 DEFAULT TABLESPACE test TEMPORARY TABLESPACE test_temp QUOTA 10 M ON test;
SQL > Alter user test default tablespace tbs_test1;
SQL > Alter user test temporary tablespace temp_tbs_test1;
SQL > alter user test QUOTA 4 M ON test;
SQL > drop user test cascade ;
2. 密码管理
Password_parameter部分:
Failed_login_attempts:指定在帐户被锁定之前所允许尝试登陆的的最大次数。
Password_life_time:指定同一密码所允许使用的天数。如果同时指定了password_grace_time参数,如果在grace period内没有改变密码,则密码会失效,连接数据库被拒绝。如果没有设置password_grace_time参数,默认值unlimited将引发一个数据库警告,但是允许用户继续连接。
Password_reuse_time和password_reuse_max:这两个参数必须互相关联设置,password_reuse_time指定了密码不能重用前的天数,而password_reuse_max则指定了当前密码被重用之前密码改变的次数。两个参数都必须被设置为整数。
1 .如果为这两个参数指定了整数,则用户不能重用密码直到密码被改变了password_reuse_max指定的次数以后在password_reuse_time指定的时间内。
如:password_reuse_time= 30 ,password_reuse_max= 10 ,用户可以在30 天以后重用该密码,要求密码必须被改变超过10 次。
2 .如果指定了其中的一个为整数,而另一个为unlimited,则用户永远不能重用一个密码。
3 .如果指定了其中的一个为default ,Oracle数据库使用定义在profile中的默认值,默认情况下,所有的参数在profile中都被设置为unlimited,如果没有改变profile默认值,数据库对该值总是默认为unlimited。
4 .如果两个参数都设置为unlimited,则数据库忽略他们。
Password_lock_time:指定登陆尝试失败次数到达后帐户的锁定时间,以天为单位。
Password_grace_time:指定宽限天数,数据库发出警告到登陆失效前的天数。如果数据库密码在这中间没有被修改,则过期会失效。
Password_verify_function:该字段允许将复杂的PL/ SQL 密码验证脚本做为参数传递到create profile语句。Oracle数据库提供了一个默认的脚本,但是自己可以创建自己的验证规则或使用第三方软件验证。 对Function 名称,指定的是密码验证规则的名称,指定为Null 则意味着不使用密码验证功能。如果为密码参数指定表达式,则该表达式可以是任意格式,除了数据库标量子查询。
sql > SELECT * FROM dba_profiles WHERE profile= 'DEFAULT' AND resource_name= 'PASSWORD_LIFE_TIME' ;
SQL > ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED/ 天数;
SQL > alter profile default limit FAILED_LOGIN_ATTEMPTS 30 ;
SQL > alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;
SQL > alter profile default limit password_lock_time 3 ;
alter user test account lock ;
SQL > alter user test account unlock ;
SQL > password
SQL > alter user [ username] identified by [ password] ;
sql > SELECT PROFILE FROM dba_users WHERE USERNAME= 'test' ;
CREATE PROFILE my_profile LIMIT
SESSIONS_PER_USER UNLIMITED
CPU_PER_SESSION UNLIMITED
CPU_PER_CALL 6000
CONNECT_TIME 60
LOGICAL_READS_PER_SESSION DEFAULT
LOGICAL_READS_PER_CALL 60000
COMPOSITE_LIMIT 6000000
FAILED_LOGIN_ATTEMPTS 10
PASSWORD_LIFE_TIME UNLIMITED
PASSWORD_REUSE_TIME UNLIMITED
PASSWORD_LOCK_TIME 1 / 24
PASSWORD_GRACE_TIME 10
PASSWORD_VERIFY_FUNCTION verify_function
SQL > select * from dba_profiles;
SQL > alter user scott profile my_profile;
SQL > select USERNAME, PROFILE from dba_users where USERNAME = 'scott' ;
SQL > alter user scott profile default ;
SQL > select USERNAME, PROFILE from dba_users where USERNAME = 'scott' ;
3. 权限、角色管理
# 赋予/收回权限
SQL> grant CONNECT,CREATE TABLE,CREATE ANY VIEW TO test;
SQL> revoke resource from test;
# 查看当前用户权限
SQL> SELECT * FROM role_sys_privs;