2、oracle用户和权限
权限主要可以分成三类:系统权限、角色、对象权限,角色是一类系统权限的分组,
Oracle 的角色存放在表 dba_roles 中,某角色包含的系统权限存放在 dba_sys_privs 中,
包含的对象权限存放在 dba_tab_privs 中。
2.1、系统权限:
系统权限其实就是用户在当前用户架构下所具有的权限,在11g中系统权限有200个,
比如create table,UNLIMITED TABLESPACE等。
1、查询当前用户拥有的系统权限:
select * from session_privs;
2、查询某一个用户的系统权限:
select * from dba_role_privs where GRANTEE='<用户名>';
select * from dba_sys_privs where GRANTEE='<用户名>';
2.2、角色:
角色其实就是一类系统权限的分组,所以给用户分配角色其实也是在给用户分配系统权限;
1、在oracle中有三个比较常用的角色:
1)
CONNECT(基本的连接), RESOURCE(程序开发),DBA(数据库管理);
2)
DBA:拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构;
RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构;
CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构;
3)
对于普通用户:授予connect, resource权限;
对于DBA管理用户:授予connect,resource, dba权限;
4)查看RESOURCE和CONNECT角色中所包含的系统权限:
SELECT * FROM dba_sys_privs WHERE grantee IN ('RESOURCE', 'CONNECT') ORDER BY 1;
2、查询当前用户拥有的角色:
SELECT * FROM USER_ROLE_PRIVS;
3、查询当前用户拥有的角色和对应的系统权限:
select * from role_sys_privs;
2.3、对象权限(表级权限):
对象权限指的是其它拥有用户的对象的权限,即对表的操作权限,其它用户对象的权限包括:
SELECT,DELETE,UPDATE,ALTER,INSERT,INDEX,REFERENCES,FLASHBACK,DEBUG,QUERY REWRITE,ON COMMIT REFRESH;
1、查询当前用户拥有的对象权限:
SELECT * FROM USER_TAB_PRIVS;
2.4、grant授权:
1、授予用户系统权限:
GRANT CREATE VIEW TO <用户名>;
#给用户添加"RESOURCE"角色权限中没有的创建视图的权限;
补充:
#CREATE DATABASE LINK:建立表空间链接
#CREATE SYNONYM:建立同义词
2、授予用户角色权限:
GRANT CONNECT,RESOURCE TO <用户名>;
3、授予用户对象权限:
GRANT SELECT,INSERT,UPDATE,DELETE ON <表名> TO <用户名>;
GRANT ALL PRIVILEGES ON <表名> to <用户名>;
grant connect,select any table to <用户名>;
#所有表赋予查询权限
2.5、REVOKE 回收权限:
1、回收系统权限:
REVOKE CREATE VIEW FROM <用户名>;
2、回收角色权限:
REVOKE CONNECT,RESOURCE FROM <用户名>;
3、回收对象权限:
REVOKE INSERT,UPDATE,DELETE ON <表名> FROM <用户名>;
2.5、角色管理:
1、创建一个角色:
create role <角色名>;
2、将系统权限授权给角色:
grant create any table,create procedure to <角色名>;
3、查看角色所包含的权限
SELECT * FROM dba_sys_privs WHERE grantee IN ('<角色名>') ORDER BY 1;
4、将角色授权给用户:
grant <角色名> to <用户名>;
alter user <用户名> default role <角色名>;
#将指定角色设置为指定用户的默认角色;
5、生效角色:
set role <角色名>;
#使特定的角色生效;
set role all;
#将所有的角色生效;
set role none;
#将所有的角色失效;
6、删除角色:
drop role <角色名>;
#角色删除后,原来拥用该角色的用户就不再拥有该角色了,相应的权限也就没有了;
2.6、用户操作:
1、创建用户:
create user <用户名> identified by <密码>;
alter user <用户名> identified by <密码>;
#修改密码;
2、删除用户:
drop user <用户名> cascade;
3、设置用户密码登录后失效,并要求修改密码:
alter user <用户名> password expire;
4、账户锁定和解锁:
alter user 用户名 account lock;
#账户锁定;
alter user 用户名 account unlock;
#解锁账号;
5、启用scott用户:
scott是一个系统已经新建好的普通用户,用户名scott,密码默认tiger,
默认状态是被锁定,DBA用户执行"alter user scott account unlock"可以
解锁登陆;
2、oracle用户和权限的更多相关文章
- Oracle用户,权限,角色以及登录管理 scoot 授权
Oracle用户,权限,角色以及登录管理 1. sys和system用户的区别 system用户只能用normal身份登陆em.除非你对它授予了sysdba的系统权限或者syspoer系统权限. sy ...
- Oracle 用户和权限
Oracle 用户和权限Oracle 中,一般不会轻易在一个服务器上创建多个数据库,在一个数据库中,不同的项目由不同的用户访问,每一个用户拥有自身创建的数据库对象,因此用户的概念在 Oracle中非常 ...
- Oracle用户、权限、角色管理学习(文字很系统)
Oracle用户.权限.角色管理 2009-03-16 13:20:50 标签:oracle 数据库 休闲 职场 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明 ...
- Oracle 用户管理权限
Oracle 用户管理权限 一.创建用户的Profile文件 SQL> create profile student limit // student为资源文件名 FAILED_LOGIN_AT ...
- Oracle用户、权限、角色管理(转)
http://blog.csdn.net/junmail/article/details/4381287 Oracle 权限设置一.权限分类:系统权限:系统规定用户使用数据库的权限.(系统权限是对用户 ...
- Oracle用户、权限、角色管理
Oracle 权限设置一.权限分类:系统权限:系统规定用户使用数据库的权限.(系统权限是对用户而言). 实体权限:某种权限用户对其它用户的表或视图的存取权限.(是针对表或视图而言的). 二.系统权 ...
- oracle用户、权限操作
oracle用户操作,权限操作: 1.创建用户,并让用户默认表空间为tb1: create user 用户名 identified by 密码 default namespace tb1 2.授权: ...
- oracle用户和权限
在oracle中,一个服务器上一般只有一个数据库.在一个数据库中,不同的用户项目由不同的用户访问,每一个用户拥有自身创建的数据库对象,当一个用户想访问其它用户下的数据库对象时,必须由对方授予一定的权限 ...
- oracle 用户系统权限
conn sys as sysdba; create user test identified by test; grant create session to test; grant create ...
随机推荐
- [bug] Maven每次都自动下载jar包非常慢
解决 方法一:将maven改为离线模式,自己下载jar包复制到仓库中 eclipse中Window>preferences>maven>勾选Offline 方法二:将maven镜像改 ...
- 国内Ubuntu16.04下载地址<其他系统可返回最首项>
ubuntu16.04下载地址: 中科大源 http://mirrors.ustc.edu.cn/ubuntu-releases/16.04/ 阿里云开源镜像站 http:/ ...
- ./g1.sh q w e r 5个参数 bash命令 获取 命令实际的参数 shell文件名称$0 第一个参数$1第2个参数$2 最后一个参数$#;参数个数$#个;所有的参数列出来$* 返回值$? 正确0 失败1
# ./g1.sh q w e r t./g1.sh q w e r5个参数number is q w e r t[root@localhost get]# cat g1.sh#!/bin/bash# ...
- Redis 为什么使用跳跃表
引言 跳跃表是一种有序的数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的. 什么是跳跃表 对于一个单链表来讲,即便链表中存储的数据是有序的,如果我们要想在其中查找某个 ...
- java基础之8种基本数据类型
简单往往是最重要的,在刚刚学java的时候老师会给我们先讲这8种基本数据类型,今天再来做一个温习,[本文大部分参考了 https://zhuanlan.zhihu.com/p/25439066,在上面 ...
- 痞子衡嵌入式:关于i.MXRT中FlexSPI外设lookupTable里配置Normal read的一个小误区
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT中FlexSPI外设lookupTable里配置Normal read的一个小误区. 关于串行四线NOR Flash,当其作 ...
- Linux 中的 守护进程
什么是守护进程 脱离控制终端的,运行于后端的进程,由系统管理的,按计划自动启动/停止/重启,用以执行特定的任务. 为什么要有守护进程? 在某些需求场景下,我们希望某项系统任务能够按计划按预期,始终/自 ...
- 搞定Redis(一)Redis的安装和五大基本数据类型
一.Redis概述及安装 1.概述: 1.1.Redis是一个开源的key - value存储系统. 1.2.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串). ...
- 部署通用基础设施, 满足顶级 SLA 要求
部署通用基础设施, 满足顶级 SLA 要求 Telefónica 使用基于英特尔 至强 可扩展处理器和英特尔 傲腾 数据中心级固态盘 的 VMware 虚拟存储区域网络 (vSAN)* 架构,完成对高 ...
- gradle 混合编程java、scala、kotlin、groovy
众所周知,java是基于JVM的开发语言,但能够在JVM上运行的开发语言不仅仅有java,目前还有很热门的kotlin(kotlin不仅仅只能开发Android).scala.groovy等等.目前国 ...