加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

Oracle 用户,角色,权限等

发布时间:2020-12-30 11:12:06 所属栏目:站长百科 来源:网络整理
导读:Oracle 用户,角色,权限等 权限管理是 Oracle 系统的精华,不同用户登录到同一数据库中,可能看到不同数量的表,拥有不同的权限。Oracle 的权限分为系统权限和数据对象权限,共一百多种,如果单独对用户授权,很囧,有一些用户需要的权限是相同的,就把这些
副标题[/!--empirenews.page--]

Oracle 用户,角色,权限等

权限管理是 Oracle 系统的精华,不同用户登录到同一数据库中,可能看到不同数量的表,拥有不同的权限。Oracle 的权限分为系统权限和数据对象权限,共一百多种,如果单独对用户授权,很囧,有一些用户需要的权限是相同的,就把这些用户归为同一类——某种角色,通过设立一些有预定权限的角色简化和明确授权操作,角色出现的动机也就是为了简化权限管理,它是权限的集合。一般做法是:系统把权限赋给角色,然后把角色赋给用户,当然也可以直接把某权限赋给用户。Oracle 提供细粒度的权限,可以对表的某一列单独设置权限,可以对某用户查询某表自动增添 where 限制条件。

权限允许用户访问属于其它用户的对象或执行程序,ORACLE系统提供三种权限:Object 对象级、System 系统级、Role 角色级。这些权限可以授予给用户、特殊用户public或角色,如果授予一个权限给特殊用户"Public"(用户public是oracle预定义的,每个用户享有这个用户享有的权限),那么就意味作将该权限授予了该数据库的所有用户。对管理权限而言,角色是一个工具,权限能够被授予给一个角色,角色也能被授予给另一个角色或用户。用户可以通过角色继承权限,除了管理权限外角色服务没有其它目的。权限可以被授予,也可以用同样的方式撤销。

Oracle 的角色存放在表 dba_roles 中,某角色包含的系统权限存放在? dba_sys_privs 中,包含的对象权限存放在 dba_tab_privs 中。
下面是“角色”、“用户”和“权限”的互查:

1. 用户

例:

Oracle 用户,角色,权限等

@>conn system/888888 Connected. SYSTEM@userdata>create user user50 identified by user50; User created. SYSTEM@userdata>grant connect,resource to user50; Grant succeeded.

Oracle 用户,角色,权限等

查看当前登录用户拥有的所有角色和系统权限

Oracle 用户,角色,权限等

USER50@userdata>select * from session_privs; PRIVILEGE ------------------------------------------------------------------------------------------------------------------------ CREATE SESSION UNLIMITED TABLESPACE CREATE TABLE CREATE CLUSTER CREATE SEQUENCE CREATE PROCEDURE CREATE TRIGGER CREATE TYPE CREATE OPERATOR CREATE INDEXTYPE 10 rows selected. USER50@userdata>select * from role_sys_privs; ROLE PRIVILEGE ADMIN_OPT ---------------- ------------------------ --------- RESOURCE CREATE SEQUENCE NO RESOURCE CREATE TRIGGER NO RESOURCE CREATE CLUSTER NO RESOURCE CREATE PROCEDURE NO RESOURCE CREATE TYPE NO CONNECT CREATE SESSION NO RESOURCE CREATE OPERATOR NO RESOURCE CREATE TABLE NO RESOURCE CREATE INDEXTYPE NO 9 rows selected.

Oracle 用户,角色,权限等

?查看某一用户所拥有的角色和系统权限

Oracle 用户,角色,权限等

SYSTEM@userdata>select * from dba_role_privs where GRANTEE=‘USER50‘; GRANTEE       GRANTED_ROLE ADMIN_OPT DEFAULT_R ------------------------------ -------------------- --------- --------- USER50       RESOURCE   NO YES USER50       CONNECT NO YES SYSTEM@userdata>select * from dba_sys_privs where GRANTEE=‘USER50‘; GRANTEE PRIVILEGE ADMIN_OPT ------------------------------ ------------------------------ --------- USER50 UNLIMITED TABLESPACE NO

Oracle 用户,角色,权限等

查看某一用户拥有的对象权限

Oracle 用户,角色,权限等

SYSTEM@userdata>grant select on scott.emp to user50; SYSTEM@userdata>select * from dba_tab_privs where GRANTEE=‘USER50‘; GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRANTABLE HIERARCHY -------------------- --------------- --------------- --------------- --------------- --------- --------- USER50 SCOTT EMP SCOTT SELECT NO NO

Oracle 用户,角色,权限等

2. 权限

  • 系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。
  • 对象权限:某种权限用户对其它用户的表或视图的存取权限。(是针对表或视图而言的)。

2.1. 系统权限管理

2.1.1 系统权限分类

  • DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
  • RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
  • CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。

对于普通用户:授予connect,resource权限。
对于DBA管理用户:授予connect,resource,dba权限。

2.1.2 系统权限授权命令

[系统权限只能由DBA用户授出:sys,system]
授权命令:SQL> grant connect,resource,dba to 用户名1 [,用户名2]...;

[普通用户通过授权可以具有与system相同的用户权限,但永远不能达到与sys用户相同的权限,system用户的权限也可以被回收。]

?2.1.3.权限相关的视图

与权限,角色相关的视图大概有下面这些:

?????? DBA_SYS_PRIVS: 查询某个用户所拥有的系统权限

????? USER_SYS_PRIVS:?? 当前用户所拥有的系统权限

????? SESSION_PRIVS:???? 当前用户所拥有的全部权限

????? ROLE_SYS_PRIVS:???? 某个角色所拥有的系统权限

?????? 注意: 要以SYS用户登陆查询这个视图,否则返回空.

????? ROLE_ROLE_PRIVS:??? 当前角色被赋予的角色

????? SESSION_ROLES:????? 当前用户被激活的角色

????? USER_ROLE_PRIVS:?? 当前用户被授予的角色

????? 另外还有针对表的访问权限的视图:

?????? TABLE_PRIVILEGES

??????? ALL_TAB_PRIVS ??

?????? ROLE_TAB_PRIVS:???? 某个角色被赋予的相关表的权限

3. 角色

3.1 何为角色
  角色。角色是一组权限的集合,将角色赋给一个用户,这个用户就拥有了这个角色中的所有权限。

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!