现在的位置: 首页 > 综合 > 正文

oracle用户管理

2017年11月10日 ⁄ 综合 ⁄ 共 2473字 ⁄ 字号 评论关闭

oracle用户创建

SQL> CREATE USER username IDENTIFIED BY password
2 DEFAULT TABLESPACE table_spacename
3 TEMPORARY TABLESPACE temp_table_spacename;

用户删除

SQL> DROP USER username CASCADE;                          

DROP USER 是DDL语句,不可退回,确认用户数据确实不再需要,再执行删除操作,在实际生产中,可以先将用户锁定一段时间,确定无用户访问,可以安全删除。

用户锁定、解锁

SQL> ALTER USER username ACCOUNT LOCK; 锁定
SQL> ALTER USER username ACCOUNT UNLOCK; 解锁

查看用户状态

SQL> SELECT username,account_status from dba_users;


查询用户尝试登录错误密码次数阀值,超过这个值,账户将被锁定。默认为10次

SQL> select * from dba_profiles where resource_name='FAILED_LOGIN_ATTEMPTS';

更改错误密码次数为无限制

SQL> alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;

SQL> ALTER profile default limit FAILED_LOGIN_ATTEMPTS 10;      更改为默认的10次

SQL> select name,lcount from user$;                查询错误登录次数

查询哪些用户使用缺省的口令

SQL> select * from DBA_USERS_WITH_DEFPWD;

查询用户口令管理版本

SQL> select username,password,password_versions from dba_users;

开启用户口令复杂度校验

SQL> @$ORACLE_HOME/rdbms/admin/utlpwdmg.sql

脚本主要内容如下

-- ALTER PROFILE DEFAULT LIMIT         
-- PASSWORD_LIFE_TIME 60               密码有效期为60天
-- PASSWORD_GRACE_TIME 10         口令宽限期为10天
-- PASSWORD_REUSE_TIME 1800     口令可重用时间1800天
-- PASSWORD_REUSE_MAX UNLIMITED   口令重用之前需要改变的次数
-- FAILED_LOGIN_ATTEMPTS 3                    连续登录的最大失败次数
-- PASSWORD_LOCK_TIME 1/1440             用户被锁定天数
-- PASSWORD_VERIFY_FUNCTION verify_function;

用户权限

授予用户连接到内部的权限

SQL> grant create session to username;

授予用户创建表的权限

SQL> grant create table to username;

授予用户test使用test表空间的权限

SQL> alter user test quota 10M on test;

oracle用户的权限可以分为两类:

系统权限,每个系统权限允许用户对schema对象执行一种或一类特定的数据库操作,如create sessiion、create tablespace、create table

数据库有超过100种不同的系统权限,DBA_SYS_PRIVS可以查询授予用户的系统权限。

对象权限,每个对象权限允许用户针对特定的对象执行一种特定的行为,如对某个表的查询 权限

常见的各类对象权限可以通过如下的方式进行授予:

表权限:select、delete、update、insert、alter

grant select on 表名 to 用户;

视图权限:select、delete、insert、update

grant select on 视图名 to 用户;

过程、函数、程序包权限:execute、debug

grant execute on 过程、包名称 to 用户;

grant和revoke是用来执行权限授予和回收的主要手段。

系统权限的授予可以通过oracle视图DBA_SYS_PRIVS来查询,这个视图包含被授予权限的用户信息以及具体的权限,如果授予权限时允许用户转授权限,那么ADMIN_OPTION就为yes

SQL> select * from dba_sys_privs where grantee='TEST';

GRANTEE         PRIVILEGE
ADM
------------------------------ ---------------------------------------- ---
TEST        CREATE TABLE
NO
TEST        CREATE SESSION

查询跟table有关的权限

SQL> select privilege from dba_sys_privs where privilege like '%TABLE';

回收用户的unlimited tablespace权限

SQL>revoke UNLIMITED TABLESPACE from 用户;

独立的空间授权可以通过dba_ts_quotas查询得到

SQL>select * from dba_ts_quotas where username=‘test’;

对象权限可以通过DBA_TAB_PRIVS来查询

角色

在数据库内部,用户和角色信息都存储在USER$表中,其中TYPE字段用来标识类型,0为角色,1为用户;

查询DBA_ROLES视图,得到数据库中定义的角色

SQL> select * from dba_roles;

查询ROLE_SYS_PRIVS视图获取角色具有的系统权限

SQL> select * from role_sys_privs where ROLE='RESOURCE';

查询角色的授权情况

SQL> select * from dba_role_privs where granted_role='CONNECT';



抱歉!评论已关闭.