oracle数据库管理--管理权限和角色

2024-02-23 08:38

本文主要是介绍oracle数据库管理--管理权限和角色,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

引言:

         当刚刚建立新用户时,用户没有任何权限,也不能执行任何操作。如果要执行某种待定的数据库操作,则必须为其授予系统权限;如果用户要访问其它方案的对象,则必须为其授予对象权限。为了简化权限的管理,可以使用角色。

(1)角色:一个角色可以被授予系统权限,或者对象权限
         oracle事先定义了若干角色,查看所有角色:
SQL> select * from dba_roles;
其中:
DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。
可以查询sys_dbs,sys_privs可以了解各种角色拥有的权限
eg:
对于普通用户:授予connect, resource权限。

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

(2)权限:指执行特定类型sql命令或是访问其它方案对象的权利,包括系统权限和对象权限
A、系统权限:描述用户对数据库的相关权限,指执行特定类型sql命令的权利,它用于控制用户可以执行的一个或是一组数据库操作。比如当用户具有create table权限时,可以在其方案中建表,当用户具有create any table 权限时,可以在任何方案中建表。
常用的有:
create session 连接数据库         create table 建表
create procedure  建过程、函数、包
例如,CREATE TABLE权限允许用户创建表,GRANT ANY PRIVILEGE 权限允许用户授予任何系统权限。
查看用户系统权限:
SQL> select * from dba_sys_privs;
SQL> select * from all_sys_privs;
SQL> select * from user_sys_privs;

授予系统权限传递:
    一般情况下,授予系统权限是有DBA完成的,如果用其它用户来授予系统权限,则要求该用户必须具有grant any privilege 的系统权限在授予系统权限时,可以带有with admin option 选项。
grant 系统权限 to 用户名 [with admin option].带上with子句,可以让该用户有权限把系统权限授予其他用户。
eg:system 给用户xiaoming 权限时:
grant connect to xiaoming with admin option//意味用户xiaoming可以把connect 权限传递下去

回收系统权限:

    一般情况下,回收系统权限是DBA来完成的,如果其它的用户来回收系统权限,要求该用户必须具有相应系统权限及转授系统权限的选项(with admin option),回收系统权限使用revoke来完成。
eg:
SQL> revoke create session from ***(用户)  级联回收

B、对象权限:用户对其他用户的数据对象访问/操作的权限,其中,数据对象指用户创建的表,视图、存储过程、触发器等。
常用的有:alter、delete、select、insert、update 等。
查看对象权限:通过数据字段视图可以显示用户或是角色所具有的对象杼,视图为dba_tab_privs。
eg:
SQL> conn system/manager
SQL> select distinct privilege from dba_tab_privs
eg:希望xiaoming用户可以去查看scott的emp表(对象权限)
sql>conn scott/sheng
sql>grant select on emp to xiaoming  

希望xiaoming 用户去修改scott 的emp表
SQL> grant update on emp to xiaoming

希望xiaoming 用户去所有权限scott 的emp表
SQL> grant all on emp to xiaoming

授予对象权限传递:
如果是对象权限,就加入with grant option
grant select on emp to xiaoming with grant option //意味着xiaoming可以传递权限
回收权限revoke
scott 希望收回xiaoming对emp表的查询权限
revoke select on emp from xiaoming

这篇关于oracle数据库管理--管理权限和角色的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/738068

相关文章

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

mysql数据库重置表主键id的实现

《mysql数据库重置表主键id的实现》在我们的开发过程中,难免在做测试的时候会生成一些杂乱无章的SQL主键数据,本文主要介绍了mysql数据库重置表主键id的实现,具有一定的参考价值,感兴趣的可以了... 目录关键语法演示案例在我们的开发过程中,难免在做测试的时候会生成一些杂乱无章的SQL主键数据,当我们

Spring Boot 整合 MyBatis 连接数据库及常见问题

《SpringBoot整合MyBatis连接数据库及常见问题》MyBatis是一个优秀的持久层框架,支持定制化SQL、存储过程以及高级映射,下面详细介绍如何在SpringBoot项目中整合My... 目录一、基本配置1. 添加依赖2. 配置数据库连接二、项目结构三、核心组件实现(示例)1. 实体类2. Ma

Oracle存储过程里操作BLOB的字节数据的办法

《Oracle存储过程里操作BLOB的字节数据的办法》该篇文章介绍了如何在Oracle存储过程中操作BLOB的字节数据,作者研究了如何获取BLOB的字节长度、如何使用DBMS_LOB包进行BLOB操作... 目录一、缘由二、办法2.1 基本操作2.2 DBMS_LOB包2.3 字节级操作与RAW数据类型2.

查看Oracle数据库中UNDO表空间的使用情况(最新推荐)

《查看Oracle数据库中UNDO表空间的使用情况(最新推荐)》Oracle数据库中查看UNDO表空间使用情况的4种方法:DBA_TABLESPACES和DBA_DATA_FILES提供基本信息,V$... 目录1. 通过 DBjavascriptA_TABLESPACES 和 DBA_DATA_FILES

nvm如何切换与管理node版本

《nvm如何切换与管理node版本》:本文主要介绍nvm如何切换与管理node版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录nvm切换与管理node版本nvm安装nvm常用命令总结nvm切换与管理node版本nvm适用于多项目同时开发,然后项目适配no

Java实现数据库图片上传与存储功能

《Java实现数据库图片上传与存储功能》在现代的Web开发中,上传图片并将其存储在数据库中是常见的需求之一,本文将介绍如何通过Java实现图片上传,存储到数据库的完整过程,希望对大家有所帮助... 目录1. 项目结构2. 数据库表设计3. 实现图片上传功能3.1 文件上传控制器3.2 图片上传服务4. 实现

使用Dify访问mysql数据库详细代码示例

《使用Dify访问mysql数据库详细代码示例》:本文主要介绍使用Dify访问mysql数据库的相关资料,并详细讲解了如何在本地搭建数据库访问服务,使用ngrok暴露到公网,并创建知识库、数据库访... 1、在本地搭建数据库访问的服务,并使用ngrok暴露到公网。#sql_tools.pyfrom

Java实现数据库图片上传功能详解

《Java实现数据库图片上传功能详解》这篇文章主要为大家详细介绍了如何使用Java实现数据库图片上传功能,包含从数据库拿图片传递前端渲染,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、前言2、数据库搭建&nbsChina编程p; 3、后端实现将图片存储进数据库4、后端实现从数据库取出图片给前端5、前端拿到