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"可以

解锁登陆;

原文地址:https://www.cnblogs.com/LiuChang-blog/p/12315492.html

时间: 2024-08-04 20:36:16

2、oracle用户和权限的相关文章

Oracle 用户管理权限

Oracle 用户管理权限 一.创建用户的Profile文件 SQL> create profile student limit // student为资源文件名 FAILED_LOGIN_ATTEMPTS 3 //指定锁定用户的登录失败次数 PASSWORD_LOCK_TIME 5 //指定用户被锁定天数 PASSWORD_LIFE_TIME 30 //指定口令可用天数 二.创建用户 SQL> Create User username Identified by password  --密码

oracle用户和权限

在oracle中,一个服务器上一般只有一个数据库.在一个数据库中,不同的用户项目由不同的用户访问,每一个用户拥有自身创建的数据库对象,当一个用户想访问其它用户下的数据库对象时,必须由对方授予一定的权限,因此,用户和权限在oracle中非常重要.下面是我总结的一些关于用户和权限的知识,和大家一起分享一下. 连接数据库前,必须保证oracle实例的服务与监听开启.在oracle中,默认有两个数据库管理员用户(sys和system)和一个普通用户(scott).sys用户具有所有数据库管理的功能,sy

Oracle用户与权限管理

权限分类 1.  系统权限:对于数据库操作的权限,包括但不限于: CREATE TABLE CREATE VIEW CREATE SESSION CREATE  SEQUENCE CREATE PROCEDURE -- 2.  对象权限:对于用户创建的表.视图的访问.修改能操作权限,包括但不限于: SELECT UPDATE INSERT DELETE -- 权限分配与回收 1.  权限分配: GRANT 权限 TO 用户/角色 例1:将对hr用户下employee表的访问权限赋给用户SCOTT

Oracle用户、权限、角色管理

Oracle 权限设置一.权限分类:系统权限:系统规定用户使用数据库的权限.(系统权限是对用户而言). 实体权限:某种权限用户对其它用户的表或视图的存取权限.(是针对表或视图而言的). 二.系统权限管理:1.系统权限分类:DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构. RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构. CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构. 对于普通

查询oracle用户角色权限

1.查看所有用户:   select * from dba_users;   select * from all_users;   select * from user_users; 2.查看用户或角色系统权限(直接赋值给用户或角色的系统权限): select * from dba_sys_privs;         select * from user_sys_privs; SQL> select * from user_sys_privs; USERNAME                

oracle 用户系统权限

create user test identified by test; grant create session to test; grant create table to test; 这个时候还没有使用表空间的权限,还不可以建表grant unlimited tablespace to test;create table test (sno number);create table scott.test(id int);grant create any table to test;conn

4、Oracle用户、权限、角色

1.用户创建.修改.删除 创建用户语法: CREATE USER user_name ----创建用户名称 IDENTIFIED BY password ----用户口令 [ DEFAULT TABLESPACE default_tablespace | ----指定默认表空间 TEMPORARY TABLESPACE temp_tablespace    | ----指定临时表空间 PROFILE profile ----用户的资源文件,默认default QUOTA [ integer K

Oracle用户角色权限相关视图

常用相关视图概述 DBA_SYS_PRIVS: 查询某个用户所拥有的系统权限 USER_SYS_PRIVS: 当前用户所拥有的系统权限 SESSION_PRIVS: 当前用户所拥有的全部权限 ROLE_SYS_PRIVS: 某个角色所拥有的系统权限(要以SYS用户登录) ROLE_ROLE_PRIVS: 当前角色被赋予的角色 SESSION_ROLES: 当前用户被激活的角色 USER_ROLE_PRIVS: 当前用户被授予的角色 针对表的访问权限的视图: TABLE_PRIVILEGES AL

Oracle实例、用户、权限和角色

1.数据库的实例:数据库创建后会有一系列为该数据库提供服务的内存空间和后天进程,称为该数据库的实例.每一个数据库至少会有一个实例为其服务.实例中的内存结构称为系统全局区(SGA),系统会根据当前计算机系统的性能给SGA分配非常可观的内存空间. 2.虽然一个Oracle数据库服务器中可以安装多个数据库,但是一个数据库需要占用非常大的内存空间,因此一般一个服务器只安装一个数据库.每一个数据库可以有很多用户,不同的用户拥有自己的数据库对象(比如:数据库表),一个用户如果访问其他用户的数据库对象,必须由