oracle的用户权限和角色

    oracle的用户权限和角色

系统权限

定义:指特定类型的sql命令的权利。

 常见的有:

create  session  连接数据库

create   table    建表

create    view    建视

create  public  synonym  建同义词

create procedure  建过程、函数、包

create trigger    建触发器

create cluster   建簇

如何使用select来查询有哪些系统权限

  select * from system_privilege_map order by name;

案例:

 

   1.创建两个用户并指定密码

     connect system/orcl;

     create user ken identified by ken;

     create user tom identified by tom;

  2.给ken 授予会话,建表,建视图的权限

     grant create session to ken with admin option【有with admin option】

     grant create table to ken with admin option【有with admin option】

     grant create view to ken 【无with admin option】

3.用ken 给tom赋予相同的权限

   connect  ken/ken;

    grant create session to tom with admin option

grant create table to tom with admin option

    
grant create view to tom  
【报错!!!!!】  

   ------------------------------

   报错的原因:

权限的流程:

system
 =》 ken =》 tom

如何能够赋予他人权限,除system拥有超级权限外,其他用户想要继承赋予他人

权限的能力,必须在system赋予权限时加入with admin option,才能有赋予权限

的能力,如上所示在system赋予ken权限时只有创建视图没有加入with adminoption,所以他不能够赋予他人权限,所以报错。

 回收系统权限

使用system回收ken [create  session   权限]

基本语法

revoke 权限名称 from 用户名

例:

revoke create session from ken;

问题:

在回收ken的权限之后,是否也回收曾经是被ken赋予权限的tom的权限。

答:不是,只回收指定的权限

对象权限

定义:指访问其它方案对象的权利

oracle 给我们提供17种对象权限,可以通过如下指令,来查看(dba 角色)

select distinct  privilege from dba_tab_privs;

基本语法:

grant 对象权限 on 方案.数据对象 to 用户[with grant option]

grant 对象权限 on 方案.数据对象 to 角色(角色不能拥有赋予权限的权利)

案例:

1.monkey用户要操作scott.emp表,则必须赋予相对应的对象权限

 (1)希望monkey可以查询到scott.emp表中的数据?

使用scott或者system/sys用户操作

grant select on scott.emp to monkey;

(2)希望monkey可以修改到scott.emp表中的数据?

grant update on scott.emp to monkey;

(3)希望monkey可以删除到scott.emp表中的数据?

grant delete on scott.emp to monkey;

(4)有没有简单的方法,一次性赋予所有权利?

grant all on scott.emp to monkey;

2.授予moneky用户修改scott.emp表的结构 权限

   grant alter on scott.emp to monkey;

3.授予execute权限(概念)

如果用户想要执行其他方案的包/过程/函数,则需要execute权限。

4.授予monkey用户在scott.emp表中建立索引的权限?

   connect scott/tiger;

grant index on scott.emp to monkey;

回收对象权限:

基本语法:

revoke  对象权限 on 方案.数据对象 from 用户

对象权限是级联回收:因为引用的一个对象,一旦对象消失,就失去了引用。

scott  =>>>>>  blake =>>>>> jones

system操作:

create user blake identified by blake;

create user jones identified by jones;

grant create session to blake;

grant create session to jones;

使用scott登陆,授予blake查询emp表权限,然后

再用blake授予jones权限,然后查询emp表

scott操作

grant select on emp to blake;

blake操作

grant select on scott.emp to jones;

此时,两张表都可查询emp表

注意:

scott操作

revoke select on emp from blake;    --回收权限

此时,两张表都不可查询emp表

角色

定义:角色是一组权限的集合,目的是为了简化对权限的管理,从而达到简单的对用户的管理。

角色的分类

(1)预定义角色:

oracle提供了33种预定义角色,常用的是(connect,dba,resource);

?如何知道某个角色拥有怎样的权限

select * from dba_sys_privs where grantee = ‘DBA’;

?如何知道某个用户拥有什么样的权限

select * from dba_role_privs where grantee = ‘用户名’;

注:角色名称一定大写

(2)自定义角色:

基本语法:

       不带验证:

create role 角色名 not identified;

带验证:

create role 角色名 identified by 密码;

案例:

创建角色:

create role myrole not identified;

赋予角色权利:

系统权限:

grant create session to myrole;

对象权限(scott.emp)

grant select on scott.emp to myrole;

grant insert on scott.emp to myrole;

grant update on scott.emp to myrole;

赋予用户角色:

create user jerry identified by  jerry;

grant myrole to jerry;

回收角色:

drop role mylore;

范围:角色既可以包含系统角色,也可以包含自定义角色。

时间: 2024-10-13 06:24:18

oracle的用户权限和角色的相关文章

如何实现Oracle修改用户权限 .

这里将介绍Oracle修改用户权限的实现过程,包括一些权限管理方面的东西.希望通过本文能对大家了解Oracle修改用户权限有所帮助. ORACLE数据库用户与权限管理 ORACLE是多用户系统,它允许许多用户共享系统资源.为了保证数据库系统的安全,数据库管理系统配置了良好的安全机制. 2. 1 ORACLE数据库安全策略 建立系统级的安全保证 系统级特权是通过授予用户系统级的权利来实现,系统级的权利(系统特权)包括:建立表空间.建立用户.修改用户的权利.删除用户等.系统特权可授予用户,也可以随时

项目一:第十三天 1、菜单数据管理 2、权限数据管理 3、角色数据管理 4、用户数据管理 5、在realm中动态查询用户权限,角色 6、Shiro中整合ehcache缓存权限数据

1 课程计划 菜单数据管理 权限数据管理 角色数据管理 用户数据管理 在realm中动态查询用户权限,角色 Shiro中整合ehcache缓存权限数据         2 菜单数据添加 2.1 使用combotree父菜单项数据     1. 页面:menu_add.jsp 2. 修改组件样式:easyui-combotree,修改url  树型表格treeGrid跟下来数combotree要求数据格式基本一致. Combotree通过text属性展示文本.   3. 使用treegrid组件的

Navicat连接Oracle数据库用户权限问题

解决Navicat连接Oracle数据库用户权限问题: 第一步:在cmd窗口运行[sqlplus] 第二步:输入Oracle的用户名和口令连接Oracle数据库. 第三步:执行授权代码 [grant dba to 用户名;] 第四部:执行[grant all privileges to 用户名;] 原文地址:https://www.cnblogs.com/lyang-a/p/11638494.html

Oracle(控制用户权限)

权限允许用户访问属于其它用户的对象或执行程序, ORACLE系统提供权限:Object 对象级.System 系统级 查看权限的数据字典: 字典名 含义 ROLE_SYS_PRIVS System privileges granted to roles ROLE_TAB_PRIVS Table privileges granted to roles USER_ROLE_PRIVS Roles accessible by the user USER_TAB_PRIVS_MADE Object pr

用户权限、角色管理

用户管理 1.创建用户,用户第一次登录后,需要重新更改密码 [email protected]>create user sangmu identified by sangmu password expire; 2.给新创建的用户授予创建会话的权限 [email protected]>grant create session to sangmu; 3.将登录会话的权限给收回 [email protected]>revoke create session from sangmu; 4.查看用

用户权限及角色管理

范例:创建一个新的用户:c##mldnuser,密码为:java_android CREATE USER c##mldnuser IDENTIFIED BY java_android DEFAULT TABLESPACE mldn_data TEMPORARY TABLESPACE mldn_temp QUOTA 30M ON mldn_data QUOTA 20M ON users ACCOUNT UNLOCK PASSWORD EXPIRE ; 范例:通过dba_users查看用户信息 SE

ORACLE 11g用户权限管理查询

1.查看数据库里所有用户各自拥有的角色: select * from (select distinct connect_by_root grantee username,granted_role from dba_role_privs connect by prior granted_role =grantee ) a where exists (select 1 from dba_users b where b.username=a.username) order by 1,2; 2.查看数据

Jenkins用户权限以及角色配置

jenkins添加用户权限: 1. 配置插件 jenkins初次登陆后,要先注册一个用户作为管理员: 依次点击"系统管理"->"Configure Global Security" 启动安全模式,按如图设置: 2. 配置权限 在系统管理页面点击Manage and Assign Roles进入角色管理页面: 进去如下: 1.管理角色(Manage Roles) 选择该项可以创建全局角色.项目角色,并可以为角色分配权限. 如上图,分别创建了admin.membe

Oracle 12c 用户创建、角色、权限

一.创建用户 创建用户默认的是container=all,在cdb中只能创建全局用户(c##开头),会在cdb和所有的pdb中创建该用户(但是pdb中的全局用户需要另外授权才能够在pdb中访问).在pdb中只能创建的用户为本地用户 SQL> show con_name; CON_NAME ------------------------------ CDB$ROOT SQL> create user user1 identified by user1; create user user1 id