Oracle(17)如何管理权限和角色
来源:互联网 发布:可编程控制器 单片机 编辑:程序博客网 时间:2024/05/20 16:45
①系统权限主要指对数据库管理的操作以及对数据对象的操作(创建、删除、修改);
对象权限主要指对数据对象的操作(CURD)。
②角色本质就是多个权限的集合,用于简化对权限的管理,分为预定义角色和自定义角色。
③刚刚建立的用户,没有任何权限,也不能执行任何操作。如果要执行某种特定的数据库操作,必须为其授予系统的权限;如果要访问其他方案的对象,必须为其授予对象的权限。
- 系统权限是指执行特定类型的sql命令的权利。它用于控制用户可以执行的一个或是一组数据库操作。比如create table权限,可以在其方案中建表,当用户拥有create any table权限时,可以在任何方案中建表。Oracle提供了160多种系统权限。常用的有:
create session 链接数据库 create table 建表
create view 建视图 create public synonym 建同义词
create procedure 建过程、函数、包 create trigger 建触发器
create cluster 建簇 - 查看系统权限
Oracle的所有系统权限存放在数据字典视图system_privilege_map中
select * from system_privilege_map order by name;
④授予权限
授予权限是由dba完成的,该用户拥有grant any privilege权限,在授予系统权限时如果带有with admin option,则被授予权限的用户可以继续向别的用户转发权限。
grant 权限名称 to 用户名
⑤回收权限
回收系统权限是由dba来完成的,如果其他用户来回收系统权限,要求该用户必须具有相应系统权限及转授系统权限的选项(with admin option)。回收系统权限使用revoke来完成。
revoke create session from ken;
- 对象权限
指访问其他方案对象的权利,用户可以直接访问自己方案的对象,但如果要访问别的方案的对象,则必须具有对象的权限。
常用的有:
alter修改 delete删除 select查询 insert添加 update修改 index索引 references引用 execute执行
查看Oracle提供的所有对象权限(dba可以查看)
select distinct privilege from dba_tab_privs;
-- 授予对象权限grant 对象权限 on 数据库对象 to 用户名[with grant option];grant select on users to xiaohong;grant all on users to xiaohong;-- 回收对象权限 对象权限是级联回收的revoke 对象权限 on 数据库对象 from 用户名;
-- 查询当前用户有什么系统权限select * from user_sys_privs;-- 查询当前用户在 别人的表 上具有什么样的对象权限select * from user_tab_privs; --对表的权限select * from user_col_privs; -- 对表的列的权限
- 预定义角色
是指Oracle所提供的的角色,每种角色都用于执行一些特定的管理任务。常见的预定义角色有connect,resource,dba。
具有一般应用开发人员需要的大部分角色,只要给用用户授权connect和resource就够了。
grant 角色名 to 用户;
使用system用户,查询预定义角色:
select * from dba_roles;-- 查看某个用户有哪些角色 用户名必须大写select * from dba_role_privs where grantee='用户名';-- 查询某个角色包含的权限select * from dba_sys_privs where grantee='DBA';select * from role_sys_privs where role='DBA';
- 自定义角色
有create role系统权限的用户才能定义角色。在建立角色时可以指定验证方式(不验证,数据库验证):
①建立角色(不验证) 常用方式
如果角色是公用的角色,可以采用不验证的方式建立角色。
create role 角色名 not identified;
②建立角色(数据库验证)
采用这种方式时,角色名、口令存放在数据库中。当激活该角色时,必须提供口令。建立角色时,需要为其提供口令
create role 角色名 identified by xxxxx;
--- 创建角色,分配权限create role myrole not identified;grant create session to myrole;grant select on scott.emp to myrole;grant insert on scott.emp to myrole;grant update on scott.emp to myrole;--- 指定给某个用户grant myrole to xiaoming;--- 删除角色drop role myrole;
0 0
- Oracle(17)如何管理权限和角色
- Oracle《管理权限和角色》
- Oracle管理权限和角色
- oracle中的管理权限和角色
- 管理权限和角色---角色
- oracle数据库管理--管理权限和角色
- oracle管理权限与角色(篇1)
- oracle管理权限与角色
- 管理权限和角色
- Oracle学习笔记(二十)——管理权限和角色
- oracle实战第五天--索引、管理权限和角色
- oracle 10g 管理权限和角色,以及有关方面的数据字典的使用方法总结
- oracle角色:如何预定义角色和自定义角色?
- oracle管理权限
- Oracle知识整理(二)如何分配权限和角色
- oracleday14(索引 管理权限和角色 系统权限 对象权限 SQLhelper补充)
- Oracle之管理权限
- 如何查看oracle用户具有的权限和角色
- 隔离见证学习笔记
- Servlet开发基础知识—运行过程与生命周期
- PAT乙级(Basic Level)真题 >反转链表
- error: L6235E: More than one section matches selector
- 添加Jar包
- Oracle(17)如何管理权限和角色
- Qt中realAll() 接收数据不完整的问题
- Android Things物联网开发--外围I/O接口之UART(七)
- poj 1284 Primitive Roots
- Win10与Ubuntu16.04双系统的那些事
- 语录
- java基础学习(八)接口
- LeetCode-Easy部分中标签为String 14. Longest Common Prefix
- Android 使用接口回掉实现线程间数据传递