Oracle 原理:用户和权限,Profile,系统权限,对象权限,角色
目录
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,系统权限,对象权限,角色相关推荐
- oracle的系统和对象权限 与 Oracle 查看用户权限
oracle的系统和对象权限 alter any cluster 修改任意簇的权限 alter any index 修改任意索引的权限 alter any role 修改任意角色的权限 alter a ...
- Oracle的系统和对象权限 查看用户包含的各类权限
Oracle数据库用户权限查询和一些查看操作(汇总) 2018年07月22日 20:32:38 茶木君 阅读数:1222 标签: oracle 更多 个人分类: oracle dba权限:user为有 ...
- oracle对象权限 函数,oracle的系统和对象权限
alter any cluster 修改任意簇的权限 alter any index 修改任意索引的权限 alter any role 修改任意角色的权限 alter any sequence 修改任 ...
- 获取win10计算机所有权限,win10系统windows访问权限获取的操作方法
很多小伙伴都遇到过对win10系统windows访问权限获取进行设置的困惑吧,一些朋友看过网上对win10系统windows访问权限获取设置的零散处理方法,并没有完完全全明白win10系统window ...
- oracle创建用户赋予访问某一视图的权限
Oracle创建一个用户,只有访问某一视图的权限 登录到sysdba用户 创建用户 create user [username] identified by [password]; 授予用户连接查询权 ...
- android编译系统root权限,Android系统获取ROOT权限后能做些什么?
Android的设备Root了以后可以做些什么特别的操作呢?今天刷机之家小编为大家简述Root以后最实用的几种用途. 在了解Root的用途之前,我们先来简单看看Android的Root是什么. And ...
- Oracle 用户、对象权限、系统权限
一.用户与模式 用户:对数据库的访问,需要以适当用户身份通过验证,并具有相关权限来完成一系列动作SYS用户,缺省始终创建,且未被锁定,拥有数据字典及其关联的所有对象SYSTEM用户,缺省始终创建,且未 ...
- Oracle的对象权限、角色权限、系统权限
Oracle的对象权限.角色权限.系统权限 一.用户与模式 用户:对数据库的访问,需要以适当用户身份通过验证,并具有相关权限来完成一系列动作 SYS用户,缺省始终创建,且未被锁定,拥有数据字典及其关联 ...
- Oracle数据库用户管理之二---权限授权去权(用户和角色)
Oracle数据库用户管理之二---权限授权去权(用户和角色) 书接上回,https://blog.csdn.net/alwaysbefine/ ...
最新文章
- mysql2tb_MySQL2
- Web服务器指纹识别工具httprint
- 1235813找规律第100个数_拓展提优 | 小学数学拓展提优专项训练第9讲:
- Introduction to PostGIS 之线性参考、地理编码
- core Bluetooth(蓝牙4.0)
- 嘉实多RO150合成齿轮油
- mysql按日期获取最新_mysql获取按日期排序获取最新的记录
- [Leedcode][JAVA][第837题][新21点][动态规划][数学]
- 吴恩达新研究:AI看心电图,诊断心律失常准确率超过人类医生丨Nature
- .net知识和学习方法系列(二十五) .net中的windows service与服务操作
- 启动Matlab安装包时出现Unable to open the requested feature.
- 商场无线网络方案设计
- 关于putty中的psftp、ftp上传下载的基本操作
- 【C/C++】Socket编程实例解析
- 测试测量(3)- 如何选择设备的平台
- Java对象转Map,Map转对象
- 【语音定时播报系统】基于树莓派+百度语音合成打造语音定时播报系统
- 英语听力软件测试自学,每日英语听力应该怎么学习?
- 联想服务器AR系列,联想沉浸式AR游戏设备Mirage AR现场实拍图赏
- Python2.7爬虫——爬取微信公众号文章