首页 > 代码库 > ORACLE - 用户和角色的权限管理
ORACLE - 用户和角色的权限管理
在ORACLE中,创建用户后需要授权才能使用。
一、用户管理
1. 用户和角色信息查询
--查询所有用户SQL> select * from dba_users;--经授予的用户或角色的系统权限select * from dba_sys_privs;--数据对象上的所有权限SQL>select * from dba_tab_privs;--查看当前用户的权限和角色SQL>select * from user_sys_privs;SQL>select * from role_sys_privs;--查询自己把权限授予给其他用户情况SQL> select * from user_tab_privs;
2. 授权、锁定与解锁、密码更变、用户删除、权限回收等
grant create session to name//创建sessiongrant create table to name//创建表grant create view to name//创建视图grant unlimited tablespace to name//无表空间使用限制grant dba to name//管理员授权
--用户锁定/解锁
alter user username account lock/unlock;
--更变用户密码
alter user username identified by yourpassword;
--删除用户,同时删除用户下面的所有表
drop user scott cascade;
--权限回收
revoke create table from scott cascade constraints;
3. 用户资源配置(CPU/MEMORY等资源分配)
创建用户时,没有指定资源配置,则自动设置为default。
下面示例密码资源并分配给用户:
SQL>create profile pro_name_xx limit password_reuse_max 30 password_reuse_time 100/unlimited;SQL>alter user scott profile pro_name_xx;SQL>alter user scott profile DEFAULT;SQL>drop profile pwd_profile;
限制用户尝试登陆失败次数的资源:
SQL> create profile limit_login_failure limit failed_login_attempts 3;
二、角色管理
下面是数据库几种角色拥有的权限关系,可以用select * from dba_roles查看所有角色 :
名称 | 脚本 |
|
connect | SQL.BSQ | ALTER SESSION |
create cluster/database link/sequence/session/synonym/table/view | ||
resource | SQL.BSQ | create cluster/indextype/operator/producedure/sequence/table/tigger/type |
dba | SQL.BSQ | 所有管理权限 |
exp_full_database | CATEXP.SQL | 导出权限: Select any table Backup any table Execute any producedure Execute any type ……. |
imp_full_database | CATEXP.SQL | 所有导入权限 |
...... |
与角色相关的表如下:
DBA_COL_PRIVS 数据库列上的所有权限
DBA_ROLE_PRIVS 显示已经授予用户或其他角色的角色
DBA_TAB_PRIVS 数据库对象上的所有权限
DBA_SYS_PRIVS 已经授予用户或角色的系统权限
1. 角色的创建、授权、修改与删除
用户可自定义角色,然后授予上面的一个或者几个权限
SQL>create roke xxx identified by xxx; -- 可以为角色设置密码,更改和删除角色需要时需要输入密码才能执行。注:角色名与用户名是在同一个域中,不能重名。
SQL>grant create session to role_xxx; -- 将创建会话权限授予角色role_xxx
SQL>grant role_name to user_name; -- 将角色分配给用户
SQL> revoke roke_r from scott; -- 回收角色
SQL>alter roke xxx not identified;
SQL>alter user user_xxx default role roke_xxx;
SQL> alter user user_xxx default role all expect role_xxx;
SQL>drop role role_name;
ORACLE - 用户和角色的权限管理