1、权限
Oracle中权限分为系统权限和实体权限
系统权限: 系统规定用户使用数据库的权限(系统权限是对用户而言)
授予系统权限 -> 要实现授予系统权限只能由DBA用户授出
查看ORACLE所有系统权限
select * from system_privilege_map
用法 -> grant 系统权限1[,系统权限2] ... to 用户名1[,用户名2] ... [with admin option]
系统权限回收 -> 系统权限只能由DBA用户回收
用法 -> revoke 系统权限 from 用户名
实体权限(对象权限)
某种权限对用户其他用户的表或视图的存取权限(针对表和视图而言),主要包括select update insert alter index delete all其中all包括所有权限
授予实体权限
用法 -> grant 实体权限1[,实体权限2] ... on 表名 to 用户名1[,用户名2] ...[with grant option]
实体权限回收
用法 -> revoke 实体权限 on 表名 from 用户名
查询用户拥有那些权限(用户都能使用)
select * form user_tab_privs; -> 查询授予用户的对象权限
select * form user_role_privs; -> 查询授予用户的角色权限
select * form user_sys_privs; -> 查询授予用户的系统权限
select * form session_privs; -> 查询当前用户拥有的所有权限
查看全部用户拥有权(dba身份访问)
select * from dba_tab_privs; -> 查询授予全部用户的对象权限
select * from dba_role_privs; -> 查询授予全部用户的角色权限
select * from dba_sys_privs; -> 查询授予全部用户的系统权限
2、角色角色是一组权限的结合,将角色赋给一个用户,这个用户就拥有了和这个角色中的所有权限
角色分为 -> 预定义角色和自定义角色
系统预定义角色 ->预定义角色是在数据库安装后系统自动创建的一些常用的角色
DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构
RESOURCE: 拥有resource权限的用户只可以创建实体, 不可以创建数据库结构
CONNECT: 拥有Connect权限的用户则可以登录Oracle, 不可以创建实体, 不可以创建数据结构
注: 对于普通用户: 授予 connect, resource 权限
对于 DBA 管理用户: 授予 connect, resource, dba 权限
connect resource dba这些预定义角色主要是为了向后兼容. 其主要是用于数据库管理, oracle 建议用户自己设计数据库管理和安全的权限规划, 而不要简单的使用这些预定角色, 将来的版本中这些角色可能不会作为预定义角色
delete_catalog_role, execute_catalog_role, select_catalog_role 这些角色主要用于访问数据字典视图和包
exp_full_database,imp_full_database这两个角色用于数据导入导出工具的使用
自定义角色
Oracle建议自定义自己的角色,可以更加灵活方便管理用户
创建角色
create role admin;
授权给角色
grant connect,resource,to admin[with admin option];
grant select,insert on 表名 to admin [with grant option];
将角色赋予用户
grant admin to 用户[with admin option];
grant role_name to role_name[with admin option];
撤销角色权限
revoke connect from admin ;
删除角色
drop role admin ;
五、SQL语言与函数 SQL概述