Oracle用户管理

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 10M ON test;

# 修改用户表空间
SQL> Alter user test default tablespace tbs_test1;              
SQL> Alter user test temporary tablespace temp_tbs_test1;  

# 修改配额空间,否则无法插入数据
SQL> alter user test QUOTA 4M 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则意味着不使用密码验证功能。如果为密码参数指定表达式,则该表达式可以是任意格式,除了数据库标量子查询。
       
# 查看指定概要文件(如default)的密码有效期设置:
sql> SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
 
# 将密码有效期由默认的180天修改成“无限制/天数”:
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];



# 查看用户的proifle是那个,一般是default: 
sql> SELECT PROFILE FROM dba_users WHERE USERNAME='test'; 


# 创建用户profile角色文件
 CREATE PROFILE my_profile LIMIT
    SESSIONS_PER_USER          UNLIMITED  #对用户的并发连接会话数不做限制
    CPU_PER_SESSION            UNLIMITED  #对于连接到用户的每一个session的CPU时间的使用不做限制
    CPU_PER_CALL               6000       #一次调用消耗的CPU时间不能超过60秒(不超过一分钟)
    CONNECT_TIME               60         #连接到用户的每次会话时间不能超过60分钟(不超过一个小时)
    LOGICAL_READS_PER_SESSION  DEFAULT    #一次会话使用的物理读与逻辑读数据块总量与DEFAULT profile中定义保持一致
    LOGICAL_READS_PER_CALL     60000      #一次调用使用的物理读与逻辑读数据块总量不超过60000个数据块
    COMPOSITE_LIMIT            6000000    #一次会话总的资源消耗不超过6000000个服务单元(service units)
    FAILED_LOGIN_ATTEMPTS      10         #帐户被锁定之前允许10次的错误尝试
    PASSWORD_LIFE_TIME         UNLIMITED  #密码不过期
    PASSWORD_REUSE_TIME        UNLIMITED  #密码重置时间不限制
    PASSWORD_LOCK_TIME         1/24       #超过错误尝试次数后,用户将被锁定1小时
    PASSWORD_GRACE_TIME        10         #当密码过期之后原密码还可以使用10天
    PASSWORD_VERIFY_FUNCTION   verify_function #使用密码复杂度校验函数verify_function对密码做检查


# 查看创建的profile
SQL> select * from dba_profiles;

# 将profile文件分配给用户
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;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值