目录

1.用户的创建

2.用 Profile(概要文件) 管理用户:

3.系统权限

4.对象权限

5.角色管理


----------------------------------------------分割线---------------------------------------------------------

1.用户的创建

在Oracle中默认有3个用户:SYS,SYSTEM,SCOTT

其中数据库所有的数据字典表和视图都存储在SYS模式中,相当于Linux下的root用户。模式和用户可以认为是同一个概念。

SYSTEM是默认的系统管理员,可以管理表和视图、用户、权限等

SCOOT是默认的普通用户,以Oracle公司的第一个普通员工命名的,默认密码是tiger,刚开始这个用户是被锁住的,无法用该用户登录。

刚开始都是以SYS或者SYSTEM登录。来创建普通用户:

drop user voapd;
create user voapd identified by voapd;
--create user [用户名] identified by [密码] Default tablespace [默认表空间名] Temporary tablespace [临时表空间名]

创建完后可尝试登录新创建的用户:

发现刚创建的用户没有创建会话的权限,需要被授予相应的权限。授予voapd创建会话权限和解除scott锁定:

revoke CREATE SESSION  from voapd;
grant CREATE SESSION to voapd with admin option;
--GRANT [权限] TO [用户] [WITH ADMIN OPTION]
alter user scott account unlock;

之后就可以登录voapd用户 和scott用户了,第一次登录scott用户,会叫你重置密码。with admin option 表示被授予系统权限的用户,可以继续有权利授予其他用户相应的权限。

2.用 Profile(概要文件) 管理用户:

Profile文件里包含了16个用于管理用户的规则和值,包含了"登录几次失败就会把用户给锁定","锁定的天数为多少天",像这样的参数信息。每个用户都会关联一个Profile文件,然后用户就会遵循Profile里的规则。当没有指定的Profile或者指定的Profile文件被删除时,用户关联的默认概要文件就为DEFAULT。

select * from dba_profiles 可以查看profile信息。 dba_users可以查看用户信息,里面可以找到用户关联的Profile文件。(UNLIMITED指无穷大)

PROFILE参数解释如下:

COMPOSITE_LIMIT 指定一个会话的总的资源消耗,以service units单位表示。Oracle数据库以有利的方式计算
PASSWORD_LOCK_TIME 指定登陆尝试失败次数到达后帐户的锁定时间,以天为单位。
PASSWORD_VERIFY_FUNCTION 密码验证脚本.
PASSWORD_REUSE_MAX 允许使用历史密码作为新密码的间隔次数
PASSWORD_REUSE_TIME 允许使用历史密码作为新密码的间隔天数
PASSWORD_LIFE_TIME 指定同一密码所允许使用的天数
FAILED_LOGIN_ATTEMPTS 密码登录失败次数,超过则锁定用户
PRIVATE_SGA SGA共享池可以给会话分配的最大字节
CONNECT_TIME 会话的总连接时间(分钟)
IDLE_TIME 会话的连续不活动的时间。
LOGICAL_READS_PER_CALL 指定一次执行SQL(解析、执行和提取)调用所允许读的数据块的最大数目。
LOGICAL_READS_PER_SESSION 指定一个会话允许读的数据块的数目,包括从内存和磁盘读的所有数据块。
CPU_PER_CALL 指定一次调用(解析、执行和提取)的CPU时间限制,单位为百分之一秒
CPU_PER_SESSION 指定会话的CPU时间限制,单位为百分之一秒
SESSIONS_PER_USER 指定限制用户的并发会话的数目。
PASSWORD_GRACE_TIME 密码失效的宽限天数

创建Profile ,关联profile 的示例: 让用户登录3次失败就永久锁定,用户的密码有效期只有30天,宽限时间为3天。

--drop profile testProfile CASCADE;
create profile testProfile limit
failed_login_attempts 3
password_lock_time unlimited;
alter profile testProfile limit
PASSWORD_LIFE_TIME 30
PASSWORD_GRACE_TIME 3;
alter user voapd Profile testProfile;

然后登录voapd,连续试错3次密码就真的永久锁定了。登录SYSTEM用户,用alter user [用户名] account unlock;解除锁定。此外,必须没有用户关联到这个profile时才能直接删除,否则要加级联CASCADE。级联删除prifile会把原来关联到此profile用户 关联回默认的概要文件DEFAULT.

3.系统权限

GRANT [权限] TO [用户] [WITH ADMIN OPTION] ;

revoke[权限]  from [用户];

DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。
对于普通用户:授予connect, resource权限。
对于DBA管理用户:授予connect,resource, dba权限。

另外还有   当权限名带有 any时,表示该权限可以操作任意对象。例如 create table 是创建表的权限,create any table 则是拥有创建任意对象的表权限,假如A被授予了这个权限,那么A也可以创建B中表的权限。

系统权限指允许用户对数据库进行哪些操作,可以 select  *  from system_privilege_map; 查询系统权限有哪些。这里抄这位仁兄的表格了https://blog.csdn.net/weixin_30847939/article/details/95212667?ops_request_misc=%7B%22request_id%22%3A%22158229177819195239837236%22%2C%22scm%22%3A%2220140713.130056874..%22%7D&request_id=158229177819195239837236&biz_id=0&utm_source=distribute.pc_search_result.none-task

类型/系统权限

说明

群集权限

CREATE CLUSTER

在自己的方案中创建、更改和删除群集

CREATE ANY   CLUSTER

在任何方案中创建群集

ALTER ANY   CLUSTER

在任何方案中更改群集

DROP ANY   CLUSTER

在任何方案中删除群集

数据库权限

ALTER DATABASE

运行ALTER DATABASE语句,更改数据库的配置

ALTER SYSTEM

运行ALTER SYSTEM语句,更改系统的初始化参数

AUDIT SYSTEM

运行AUDIT SYSTEM和NOAUDIT SYSTEM语句,审计SQL

AUDIT ANY

运行AUDIT和NOAUDIT语句,对任何方案的对象进行审计

索引权限

CREATE ANY INDEX

在任何方案中创建索引

注意:没有CREATE INDEX权限,CREATE TABLE权限包含了CREATE INDEX权限

ALTER ANY INDEX

在任何方案中更改索引

DROP ANY INDEX

任何方案中删除索引

过程权限

CREATE PROCEDURE

在自己的方案中创建、更改或删除过程、函数和包

CREATE ANY PROCEDURE

在任何方案中创建过程、函数和包

ALTER ANY PROCEDURE

在任何方案中更改过程、函数和包

DROP ANY PROCEDURE

在任何方案中删除过程、函数或包

EXECUTE ANY PROCEDURE

在任何方案中执行或者引用过程

概要文件权限

CREATE PROFILE

创建概要文件

ALTER PROFILE

更改概要文件

DROP PROFILE

删除概要文件

角色权限

CREATE ROLE

创建角色

ALTER ANY ROLE

更改任何角色

DROP ANY ROLE

删除任何角色

GRANT ANY ROLE

向其他角色或用户授予任何角色

注意:没有对应的REVOKE ANY   ROLE权限

回退段权限

CREATE ROLLBACK SEGMENT

创建回退段

注意:没有对撤销段的权限

ALTER ROLLBACK SEGMENT

更改回退段

DROP ROLLBACK SEGMENT

删除回退段

序列权限

CREATE SEQLENCE

在自己的方案中创建、更改、删除和选择序列

CREATE ANY SEQUENCE

在任何方案中创建序列

ALTER ANY SEQUENCE

在任何方案中更改序列

DROP ANY SEQUENCE

在任何方案中删除序列

SELECT ANY SEQUENCE

在任何方案中从任何序列中进行选择

会话权限

CREATE SESSION

创建会话,登录进入(连接到)数据库

ALTER SESSION

运行ALTER SESSION语句,更改会话的属性

ALTER RESOURCE COST

更改概要文件中的计算资源消耗的方式

RESTRICTED SESSION

在数据库处于受限会话模式下连接到数据

同义词权限

CREATE SYNONYM

在自己的方案中创建、删除同义词

CREATE ANY SYNONYM

在任何方案中创建专用同义词

CREATE PUBLIC SYNONYM

创建公共同义词

DROP ANY SYNONYM

在任何方案中删除同义词

DROP PUBLIC SYNONYM

删除公共同义词

表权限

CREATE TABLE

在自己的方案中创建、更改和删除表

CREATE ANY TABLE

在任何方案中创建表

ALTER ANY-TABLE

在任何方案中更改表

DROP ANY TABLE

在任何方案中删除表

COMMENT ANY TABLE

在任何方案中为任何表、视图或者列添加注释

SELECT ANY TABLE

在任何方案中选择任何表中的记录

INSERT ANY TABLE

在任何方案中向任何表插入新记录

UPDATE ANY TABLE

在任何方案中更改任何表中的记录

DELETE ANY TABLE

在任何方案中删除任何表中的记录

LOCK ANY TABLE

在任何方案中锁定任何表

FLASHBACK ANY TABLE

允许使用AS OF子句对任何方案中的表、视图执行一个SQL语句的闪回查询

表空间权限

CREATE TABLESPACE

创建表空间

ALTER TABLESPACE

更改表空间

DROP TABLESPACE

删除表空间,包括表、索引和表空间的群集

MANAGE TABLESPACE

管理表空间,使表空间处于ONLINE(联机)、OFFLINE(脱机)、BEGIN BACKUP(开始备份)、END BACKUP(结束备份)状态

UNLIMITED TABLESPACE

不受配额限制地使用表空间

注意:只能将UNLIMITED   TABLESPACE授予账户而不能授予角色

用户权限

CREATE USER

创建用户

ALTER USER

更改用户

BECOME USER

当执行完全装入时,成为另一个用户

DROP USER

删除用户

视图权限

CREATE VIEW

在自己的方案中创建、更改和删除视图

CREATE ANY VIEW

在任何方案中创建视图

DROP ANY VIEW

在任何方案中删除视图

COMMENT ANY TABLE

在任何方案中为任何表、视图或者列添加注释

FLASHBACK ANY TABLE

允许使用AS OF子句对任何方案中的表、视图执行一个SQL语句的闪回查询

触发器权限

CREATE TRIGGER

在自己的方案中创建、更改和删除触发器

CREATE ANY TRIGGER

在任何方案中创建触发器

ALTER ANY TRIGGER

在任何方案中更改触发器

DROP ANY TRIGGER

在任何方案中删除触发器

ADMINISTER DATABASE TRIGGER

允许创建ON DATABASE触发器。在能够创建ON DATABASE触发器之前,还必须先拥有CREATE TRIGGER或CREATE ANY   TRIGGER权限

专用权限

SYSOPER

(系统操作员权限)

STARTUP

SHUTDOWN

ALTER DATABASE   MOUNT/OPEN

ALTER DATABASE   BACKUP CONTROLFILE

ALTER DATABASE   BEGIN/END BACKUP

ALTER DATABASE   ARCHIVELOG

RECOVER   DATABASE

RESTRICTED   SESSION

CREATE SPFILE/PFILE

SYSDBA

(系统管理员权限)

SYSOPER的所有权限,并带有WITH ADMIN   OPTION子句

CREATE   DATABASE

RECOVER DATABASE UNTIL

其他权限

ANALYZE ANY

对任何方案中的任何表、群集或者索引执行ANALYZE语句

GRANT ANY OBJECT PRIVILEGE

授予任何方案上的任何对象上的对象权限

注意:没有对应的REVOKE ANY   OBJECT PRIVILEGE

GRANT ANY PRIVILEGE

授予任何系统权限

注意:没有对应的REVOKE ANY   PRIVILEGE

SELECT ANY DICTIONARY

允许从sys用户所拥有的数据字典表中进行选择

在Oracle9i以后,系统权限不会被级联删除。即用户A把某权限用with admin option方式赋给了B,而B把此权限又赋给了用户C,如果用户A把用户B的权限删除,则C的权限依然存在。

4.对象权限

GRANT [权限] ON [对象] TO [用户] [WITH GRANT OPTION] ; revoke[权限]  on  [对象] from [用户];

对象权限和系统权限不一样会被级联删除。指允许用户可以对数据库对象进行操作的权利(表、视图、序列)。

(这张表又是抄的。)

 对象权限    表     视图   序列    过程
   修改(alter)                    √     √  
 删除(delete)  √   √      
 执行(execute)       
 索引(index) √       
插入(insert)  √  √      
关联(references)  √  √      
 选择(select) √  √    
   更新(update)  √  √      

grant  ALL on [对象] to [用户A]; A则拥有上表打勾的对应一列的所有对象权限。

5.角色管理

角色是权限的集合,可以把权限加入到角色中,再把角色和用户关联起来,那么用户就可以拥有角色中的权限。

DROP ROLE PROGRAMMER;            --PROGRAMMER 和 programmer 是同一个东西
CREATE ROLE programmer;
GRANT ALTER any table to programmer;
GRANT ALL ON salary_tbl TO programmer;
Grant programmer to voapd;
select * from  dba_sys_privs  where grantee ='PROGRAMMER';  ---系统权限表
select * from  dba_tab_privs  where grantee ='PROGRAMMER';  ---对象权限表

注意:创建数据到系统表里会自动转换成大写。

Oracle 原理:用户和权限,Profile,系统权限,对象权限,角色相关推荐

  1. oracle的系统和对象权限 与 Oracle 查看用户权限

    oracle的系统和对象权限 alter any cluster 修改任意簇的权限 alter any index 修改任意索引的权限 alter any role 修改任意角色的权限 alter a ...

  2. Oracle的系统和对象权限 查看用户包含的各类权限

    Oracle数据库用户权限查询和一些查看操作(汇总) 2018年07月22日 20:32:38 茶木君 阅读数:1222 标签: oracle 更多 个人分类: oracle dba权限:user为有 ...

  3. oracle对象权限 函数,oracle的系统和对象权限

    alter any cluster 修改任意簇的权限 alter any index 修改任意索引的权限 alter any role 修改任意角色的权限 alter any sequence 修改任 ...

  4. 获取win10计算机所有权限,win10系统windows访问权限获取的操作方法

    很多小伙伴都遇到过对win10系统windows访问权限获取进行设置的困惑吧,一些朋友看过网上对win10系统windows访问权限获取设置的零散处理方法,并没有完完全全明白win10系统window ...

  5. oracle创建用户赋予访问某一视图的权限

    Oracle创建一个用户,只有访问某一视图的权限 登录到sysdba用户 创建用户 create user [username] identified by [password]; 授予用户连接查询权 ...

  6. android编译系统root权限,Android系统获取ROOT权限后能做些什么?

    Android的设备Root了以后可以做些什么特别的操作呢?今天刷机之家小编为大家简述Root以后最实用的几种用途. 在了解Root的用途之前,我们先来简单看看Android的Root是什么. And ...

  7. Oracle 用户、对象权限、系统权限

    一.用户与模式 用户:对数据库的访问,需要以适当用户身份通过验证,并具有相关权限来完成一系列动作SYS用户,缺省始终创建,且未被锁定,拥有数据字典及其关联的所有对象SYSTEM用户,缺省始终创建,且未 ...

  8. Oracle的对象权限、角色权限、系统权限

    Oracle的对象权限.角色权限.系统权限 一.用户与模式 用户:对数据库的访问,需要以适当用户身份通过验证,并具有相关权限来完成一系列动作 SYS用户,缺省始终创建,且未被锁定,拥有数据字典及其关联 ...

  9. Oracle数据库用户管理之二---权限授权去权(用户和角色)

                                Oracle数据库用户管理之二---权限授权去权(用户和角色) 书接上回,https://blog.csdn.net/alwaysbefine/ ...

最新文章

  1. mysql2tb_MySQL2
  2. Web服务器指纹识别工具httprint
  3. 1235813找规律第100个数_拓展提优 | 小学数学拓展提优专项训练第9讲:
  4. Introduction to PostGIS 之线性参考、地理编码
  5. core Bluetooth(蓝牙4.0)
  6. 嘉实多RO150合成齿轮油
  7. mysql按日期获取最新_mysql获取按日期排序获取最新的记录
  8. [Leedcode][JAVA][第837题][新21点][动态规划][数学]
  9. 吴恩达新研究:AI看心电图,诊断心律失常准确率超过人类医生丨Nature
  10. .net知识和学习方法系列(二十五) .net中的windows service与服务操作
  11. 启动Matlab安装包时出现Unable to open the requested feature.
  12. 商场无线网络方案设计
  13. 关于putty中的psftp、ftp上传下载的基本操作
  14. 【C/C++】Socket编程实例解析
  15. 测试测量(3)- 如何选择设备的平台
  16. Java对象转Map,Map转对象
  17. 【语音定时播报系统】基于树莓派+百度语音合成打造语音定时播报系统
  18. 英语听力软件测试自学,每日英语听力应该怎么学习?
  19. 联想服务器AR系列,联想沉浸式AR游戏设备Mirage AR现场实拍图赏
  20. Python2.7爬虫——爬取微信公众号文章

热门文章

  1. 【工具使用系列】关于 MATLAB 电路与系统分析,你需要知道的事
  2. 不等双十一,ChemDraw降价活动已经打开!
  3. UIAlertController的使用及其自定义
  4. 使用WPF动画编程的几点注意事项[转]
  5. 二叉树的六种遍历方法汇总(转)
  6. Spring AOP根据JdbcTemplate方法名动态设置数据源
  7. RIM发警告 部分黑莓手机存在安全漏洞
  8. .net webconfig 配置说明123
  9. git push代码出现push rejected错误
  10. Java线程之Synchronized用法