第3部分 oracle11g用户和权限管理
oracle-11g-R2体系结构和用户管理
1.1.Oracle 11g R2体系结构安装oracle软件----创建数据库----在数据库中创建表----表里存储信息---这些表文件需要存储在物理硬盘上面。
假如有一个用户(这个用户可以是远程用户,也可以是本地的,也可以是一个应用程序)连接到oracle数据库上面,用户是不能直接连接在硬盘上存储的数据文件,所以在oracle中要运行一个实例,实例并不是保存在硬盘上面的,实例是内存的一部分,而库和表文件是存放在硬盘上面的,用户不能直接访问库里面的数据,只能访问实例,实例是一个特殊的内存块,只有实例能和数据库直接通信,在咱们的实验环境中实例和数据库是在同一台机器上,我们称之为单实例环境,对于用户而言所有的操作都是在实例中完成的,oracle为实例划分了一个内存块,这个内存块我们称之为SGA,其实oracle实例启动的时候,将会分配一个SGA 系统全局区并启动一些oracle的后台进程(守护进程)。
SGA核心组件介绍:在oracle中内存=SGA+PGA一个实例只能有一个SGA,所有的服务器进程和后台进程都共享一个SGAPGA:我们先看一下一个select语句是如何被执行的?如果hr用户写了一个select * from scott.emp;第一步:先做编译,编译包含了语法的检查和语义的检查。
第二步:如果编译没有问题会进入shared pool(共享池)中,而shared pool 是由library cache 和data dictionary cache(数据字典缓存)组成。
Sql语句第一时间会进入library cache中,即library cache中会存放被编译过的正确的sql语句,仅仅是sql语句而已。
library cache中没有缓存的sql语句需要进行硬解析(即需要耗费设备的I/0资源从硬盘读取)。
假设library cache中有这个sql语句,就不需要做硬解析,接着会查data dictionary cache。
oracle rac11g 基本操作
oracle rac11g 基本操作摘要:1.Oracle RAC 11g 简介2.安装和配置Oracle RAC 11g3.Oracle RAC 11g 基本操作4.管理和监控Oracle RAC 11g5.优化Oracle RAC 11g 性能6.故障排除与维护正文:一、Oracle RAC 11g 简介Oracle RAC 11g(Real Application Clusters 11g)是Oracle 数据库的一个版本,它采用了分布式架构,可以将多个服务器连接在一起,形成一个共享存储的集群。
这种架构大大提高了数据库的性能、可伸缩性和容错能力。
本文将重点介绍Oracle RAC 11g 的一些基本操作。
二、安装和配置Oracle RAC 11g1.准备工作:确保服务器硬件和软件满足Oracle RAC 11g 的最低要求。
2.下载并安装Oracle 11g 软件:从Oracle 官方网站下载相应版本的软件,并根据提示进行安装。
3.配置Oracle RAC 环境:设置Grid Infrastructure 和Oracle Home,创建数据库实例。
4.配置网络和存储:设置存储网络,配置ASM(Automatic StorageManagement)和VIP(Virtual Interface Pool)。
三、Oracle RAC 11g 基本操作1.启动和关闭数据库:使用Oracle 命令启动和关闭数据库实例。
2.创建和管理表空间:使用SQL 语句创建表空间,配置存储参数。
3.创建和管理用户:使用SQL 语句创建用户,设置权限和角色。
4.备份与恢复:使用RMAN(Recovery Manager)进行数据库备份和恢复。
四、管理和监控Oracle RAC 11g1.使用Grid Control:Oracle 提供的一个集中式管理工具,用于监控和控制RAC 环境。
2.使用OEM(Oracle Enterprise Manager):一个集成化的管理平台,用于监控数据库性能、配置参数等。
用户角色及权限管理oracleg
select * from dba_sys_privs where grantee='xiaoming2'; select * from dba_sys_privs where grantee='XIAOMING2';
管理用户、口令和资源
用户、方案和profile(续)
Scott用户拥有的对象属于scott方案,而system用户所拥 有的对象属于system方案,访问数据库对象时应注意以下事项: (1)在同一个方案中不能存在同名对象,不同方案的对象可以同名; (2)用户可以直接访问自己方案对象,如果要访问其他方案对象, 则必须具有对象权限; (3)当用户要访问其他方案对象时,必须加方案名作为前缀。
例:System用户以sysdba用户身份登录数据库:
conn system/manager as sysdba;
注:以sysdba身份登录就相当于sys用户
例: ① conn system/yhf123 as sysdba
② show user;
2024/2/17
③ shutdown immediate; 关闭数据库
Revoke system_priv[,system_priv]…from {user|role|public}[.{user|role|public}]…;
注意:系统权限不级联收回
例:conn system/yhf123;
revoke create session from xiaoming2;
2024/2/17
oracle11g教程从入门到精通
韩顺平—玩转oracle视频教程笔记一:Oracle认证,与其它数据库比较,安装Oracle安装会自动的生成sys用户和system用户:(1)sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认的密码是change_on_install(2)system用户是管理操作员,权限也很大.具有sysoper角色,没有create database的权限,默认的密码是manager(3)一般讲,对数据库维护,使用system用户登录就可以拉也就是说sys和system这两个用户最大的区别是在于有没有create database的权限。
二: Oracle的基本使用——基本命令sql*plus的常用命令连接命令1。
conn[ect]用法:conn 用户名/密码@网络服务名[as sysdba/sysoper]当用特权用户身份连接时,必须带上as sysdba或是as sysoper2。
disc[onnect]说明:该命令用来断开与当前数据库的连接3.psssw[ord]说明: 该命令用于修改用户的密码,如果要想修改其它用户的密码,需要用sys/system登录。
4.show user说明: 显示当前用户名5.exit说明: 该命令会断开与数据库的连接,同时会退出sql*plus文件操作命令1。
start和@说明:运行sql脚本案例: sql>@ d:\a。
sql或是sql〉start d:\a.sql2.edit说明: 该命令可以编辑指定的sql脚本案例: sql>edit d:\a.sql,这样会把d:\a。
sql这个文件打开3。
spool说明: 该命令可以将sql*plus屏幕上的内容输出到指定文件中去。
案例: sql>spool d:\b。
sql 并输入 sql>spool off交互式命令1。
&说明:可以替代变量,而该变量在执行时,需要用户输入。
数据库安全实验一 Oracle 11g数据库的使用以及账号和权限管理
贵州大学实验报告学院:计算机科学与信息学院专业:信息安全班级:0911. 用户认证方式ORACLE中用户认证的方式共有4种,即:1) 数据库认证(DATABASE AUTHENTICATION)又称口令认证。
由ORACLE系统进行辨认和认证用户工作。
2) 外部认证(EXTERNAL AUTHENTICATION)可以由操作系统或网络服务进行认证。
3) 全局认证(GLOBAL AUTHENTICATION)。
4) 代理认证(PROXY AUTHENTICATION),DBA对中间层服务器授权,然后利用中间层服务器代为授权和认证用户。
2.用户账号管理—账号创建创建用户账号主要是通过SQL命令CREATE USERCREATE USER 用户名IDENTIFIED {BY 密码|EXTERNALLY|GLOBALLY AS ‘外部名’}[ {DEFAULT TABLESPACE 默认表空间名称|TEMPORARY TABLESPACE 临时表空间名称|QUOTA {数目|UNLIMITED} ON 表空间名称|PROFILE 用户配置文件|PASSWORD EXPIRE|ACCOUNT{LOCK|UNLOCK};}主要参数说明QUOTA 定额,限制允许用户使用的表空间的数量。
PROFILE 用户配置文件,用于限制用户对系统资源的使用和执行密码管理的规则。
PASSWORD EXPIRE 制定用户的密码已经到期,失效,强制用户更改密码。
ACCOUNT 锁定或者解锁某个用户。
3.修改用户账号对已创建的用户的某些属性进行修改,如修改用户密码、默认表空间、临时表空间等。
例如:修改用户的认证方式:修改用户EXTERNALUSER的认证方式,从外部认证方式改为数据库认证,密码为bbb。
ALTER USER EXTERNAL USERIDENTIFIED BY bbb;4.锁定和解锁用户账号Oracle可在任何时候锁定和解锁用户账号,这样就能通过该账号控制数据库的访问而不必删除和重建这些用户账号。
在Oracle11g中新建用户,授予只读用户权限详细步骤(批量执行授权多表查询)
2、批量执行创建同义词查询语句
SELECT 'create or replace SYNONYM MACS.' || object_name|| ' FOR ' || owner || '.' || object_name|| ';' from dba_objects where owner in ('PDSCI') and object_type='TABLE';
2、授权connect //没有无法登陆 和 synonym //同义词 grant connect to macs; grant create synonym to macs;
3、授权查询表的权限 grant select on PDSCI.M_TMP to t1;
4、创建同义词 (查询的时候就不需要使用A.表名,直接使用同义词查询) create or replace SYNONYM _TMP FOR PDSCI.M_TMP;
5、完成。测试查询
备注: 1、批量执行授权多表查询权限的查询语句 select 'grant select on '||owner||'.'||object_name||' to t1;'
from dba_objects where owner in ('PDSCI') and object_type='TABLE';
在oracle11g中新建用户授予只读用户权限详细步骤批量执行授权多表查询
在 Oracle11g中新建用户,授予只读用户权限详细步骤(批量执行授权多表查 询)
1、创建新用户 create user macs identified by 123456 default tablespace pdsci;
Oracle 11g 数据库管理基础
[键入文字]眺望Oracle1 1g 数据库管理基础一Oracle 官方文档翻译北极熊2013年32周 (1)1开始数据库管理 (2)1.1各种Oracle数据库用户 (2)1.1.1数据库管理员 (2)1.1.2安全人员 (2)1.1.3网络管理员 (3)1.1.4应用开发者 (3)1.1.5应用管理者 (3)1.1.6数据库用户 (3)1.2数据库管理员的任务 (3)1.2.1评估数据库服务器硬件 (3)1.2.2安装数据库软件 (4)1.2.3规划数据库 (4)1.2.4建立并打开数据库 (4)1.2.5备份数据库 (4)1.2.6登记系统用户 (4)1.2.7实现数据库设计 (5)1.2.8备份完整功能的数据库 (5)1.2.9调优数据库性能 (5)1.2.10下载并安装补丁 (5)1.2.11滚动安装到附加主机 (5)1.3在数据库中运行命令和SQL (6)1.3.1关于SQL*Plus (6)1.3.2使用SQL连接到数据库 (6)1.4标识你的数据库发行版本 (9)1.4.1检查当前版本号 (9)1.5关于数据管理员安全与权限 (10)1.5.1数据库管理员的操作系统账号: (10)1.5.2管理员账号: (10)1.6数据库管理员认证 (10)1.6.1管理员权限 (10)1.6.2SYSDBA和SYSOPER (11)1.6.3作为SYSDBA连接的例子 (11)1.6.4选择数据库管理员认证方法 (12)1.7建立和维护密码文件 (13)1.7.1建立密码文件 (13)1.7.2密码文件参数描述 (14)共享和禁用密码文件 (14)1.7.4保持管理员密码和数据字典同步 (15)1.7.5管理密码文件 (15)1.8数据工具 (15)1.8.1SQL*Loader (15)1.8.2Export和Import 工具 (16)本章真正的很基础,很基础。
说实话翻译时就感觉是练习练习英文,有点基础都跳过或是有选择的看一点吧。
oracle11g用户创建及赋权操作
racl e用户创建及权限设置权限:create sessioncreate tableunlimited tablespaceconnectresourcedba例:#sqlplus /nologSQL> conn / as sysdba;SQL>create user username identified by passwordSQL> grant dba to username;SQL> conn username/passwordSQL> select * from user_sys_privs;我们将从创建Oracle用户权限表开始谈起,然后讲解登陆等一般性动作,使大家对Oracle 用户权限表有个深入的了解。
一、创建sys;//系统管理员,拥有最高权限system;//本地管理员,次高权限scott;//普通用户,密码默认为tiger,默认未解锁二、登陆sqlplus / as sysdba;//登陆sys帐户sqlplus sys as sysdba;//同上sqlplus scott/tiger;//登陆普通用户scott三、管理用户create user zhangsan;//在管理员帐户下,创建用户zhangsanalert user scott identified by tiger;//修改密码四,授予权限1、默认的普通用户scott默认未解锁,不能进行那个使用,新建的用户也没有任何权限,必须授予权限/*管理员授权*/grant create session to zhangsan;//授予zhangsan用户创建session的权限,即登陆权限grant unlimited session to zhangsan;//授予zhangsan用户使用表空间的权限grant create table to zhangsan;//授予创建表的权限grante drop table to zhangsan;//授予删除表的权限grant insert table to zhangsan;//插入表的权限grant update table to zhangsan;//修改表的权限grant all to public;//这条比较重要,授予所有权限(all)给所有用户(public)2、oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的,需要互相授权/*oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的*/grant select on tablename to zhangsan;//授予zhangsan用户查看指定表的权限grant drop on tablename to zhangsan;//授予删除表的权限grant insert on tablename to zhangsan;//授予插入的权限grant update on tablename to zhangsan;//授予修改表的权限grant insert(id) on tablename to zhangsan;grant update(id) on tablename to zhangsan;//授予对指定表特定字段的插入和修改权限,注意,只能是insert和updategrant alert all table to zhangsan;//授予zhangsan用户alert任意表的权限五、撤销权限基本语法同grant,关键字为revoke六、查看权限select * from user_sys_privs;//查看当前用户所有权限select * from user_tab_privs;//查看所用用户对表的权限七、操作表的用户的表/*需要在表名前加上用户名,如下*/select * from zhangsan.tablename八、权限传递即用户A将权限授予B,B可以将操作的权限再授予C,命令如下:grant alert table on tablename to zhangsan with admin option;//关键字with admin option grant alert table on tablename to zhangsan with grant option;//关键字with grant option效果和admin类似九、角色角色即权限的集合,可以把一个角色授予给用户create role myrole;//创建角色grant create session to myrole;//将创建session的权限授予myrolegrant myrole to zhangsan;//授予zhangsan用户myrole的角色drop role myrole;删除角色/*但是有些权限是不能授予给角色的,比如unlimited tablespace和any关键字*/。
Oracle用户角色与权限控制
alter user system identified by abc123;
12.2 权限
权限(Privilege)的最终作用对象是用户。即所有用 户在数据库内的操作对象和可执行的动作都是受到限制的。 Oracle中共有两种权限:系统权限和对象权限。
select * from system.t_employees order by employee_id;
12.3.2 继承角色
角色继承是指一个角色可以继承其他角色的权限信息, 从而减少自身使用grant的机会。
create role role_hr;
grant role_employee to role_hr;
grant update, insert on t_employees to role_hr;
select table_name, grantee, grantor, privilege from dba_tab_privs where table_name = 'T_EMPLOYEES';
create user cat identified by abc;
grant create session to cat;
grant role_hr to cat;
update system.t_employees set status = 'CXL' where employee_id = 13;
12.3.3 禁用和启用角色
每个用户登录数据库时,都可以获得其默认角色。可以 通过查询视图session_roles来获得当前会话下该用户的默 认角色。管理员可以禁用用户的默认角色,一旦禁用,则用 户从该角色获得的权限将不再有效。
(总结)Oracle11g常用管理命令(用户、表空间、权限)
(总结)Oracle11g常⽤管理命令(⽤户、表空间、权限)1、启动oracle数据库:从root切换到oracle⽤户进⼊:su - oracle进⼊sqlplus环境,nolog参数表⽰不登录:sqlplus /nolog以管理员模式登录:sqlplus / as sysdba启动数据库startup;停⽌数据库shutdown immediate远程连接数据库sqlplus /nologconn sys/sys@ip:1521/orainstance as sysdba也可以直接运⾏:dbstart#启动数据库的脚本dbshut#停⽌数据库的脚本参考:startup [force][restrict][nomount][migrate][quiet][pfile=][mount [exclusive] x |open]shutdown注:要把Linux下的Oracle配置成服务⾃启动,请看:2、数据库监听:启动监听服务:lsnrctl start停⽌监听服务:lsnrctl stop查看监听状态:lsnrctl status3、⽤户权限管理:注:以下命令都需要DBA权限。
创建⽤户:create user ittbank identified by 123456 ;赋予⽤户的表空间权限:alter user ittbank default tablespace ittbank;;或者两条命令合并为:create user ittbank identified by 123456 default tablespace ittbank;注:刚刚创建完的新⽤户是没有任何权限的,甚⾄连登录数据库的权限都没有。
这时使⽤conn ⽤户名/密码会提⽰没有权限。
在新建⼀个⽤户之后还要对这个⽤户进⾏授权操作。
当然是要使⽤有能⼒授权的⽤户,如sys、system。
⾓⾊是指由系统权限集合。
通常给某个⽤户授予权限时如果没有⾓⾊存在的话,那么需要⼀条⼀条的操作,⾓⾊的存在就是使得授权变得很⽅便。
Oracle_11g服务器配置和管理(详细正确版------自测)
安装Oracle前linux系统参数的配置检查下列包是否安装,如果未安装则要先安装。
# rpm -qa | grep make gcc glibc 等等binutils-2.17.50.0.6-2.el5compat-libstdc++-33-3.2.3-61elfutils-libelf-0.125-3.el5elfutils-libelf-devel-0.125glibc-2.5-12glibc-common-2.5-12glibc-devel-2.5-12gcc-4.1.1-52gcc-c++-4.1.1-52libaio-0.3.106libaio-devel-0.3.106libgcc-4.1.1-52libstdc++-4.1.1libstdc++-devel-4.1.1-52.e15make-3.81-1.1sysstat-7.0.0unixODBC-2.2.11unixODBC-devel-2.2.11在安装Oracle 11g前,先关闭系统防火墙,禁用selinux;需要手工更改系统的内核参数以及创建oracle用户和用户组,具体操作步骤如下所述。
(1)创建oracle用户和oinstall、dba用户组命令如下所示。
# /usr/sbin/groupadd oinstall //创建用户组oinstall# /usr/sbin/groupadd dba //创建用户组dba# /usr/sbin/useradd -m -g oinstall -G dba oracle //创建用户oracle# id oracle //查看用户oracle的属性uid=512(oracle) gid=1005(oinstall) groups=1005(oinstall),1006(dba)(2)设置oracle用户的口令,命令如下所示。
# passwd oracle //设置oracle用户的口令Changing password for user oracle.New UNIX password:BAD PASSWORD: it is too simplistic/systematicRetype new UNIX password:passwd: all authentication tokens updated successfully.//口令更改成功(3)创建Oracle的安装目录。
Oracle用户、权限和角色管理共77页文档
要启用口令文件认证,需要设置口令文件和配置上面的remote参数 默认只有sys可以使用口令文件。
密码文件丢失的情况
可以重建口令文件。
sysadmin也进入了口令文件中。
用户sysadmin也可以在数据库没有启动的情况下,使用口令文件进行认证了。
用户sys的密码存在口令文件和数据字典中,修改了密码以后,会同时更新两个 地方的密码。
用户管理的一些选项
1、唯一的用户名、字母开头、不包括特殊字符、最长30个
2、要有一种认证方式,通常采用密码认证,也就是登录时提供用户名和密码
3、默认表空间
Oracle10g中定义了一个数据库级别的默认表空间,如果用户没有定 义默认表空间,那么就使用这个作为自己的默认表空间,10g以前,如果出现 这种情况,那么就是用system表空间,这显然不合理,因此建立一个数据库 级别的表空间还是很有意义的
看一下外部认证(操作系统认证的例子)
一个操作系统用户的账号是ora,那么在数据库里面需要建立一个用户叫做 ops$ora,这个用户登陆操作系统以后,就可以直接登陆数据库了。因为操作 系统已经认证了这个用户。
CREATE USER "OPS$ORA" PROFILE "DEFAULT" IDENTIFIED EXTERNALLY DEFAULT TABLESPACE "USERS" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK GRANT "CONNECT" TO "OPS$ORA"
上面的认证需要我们的用户登陆Oracle所在的数据库服务器上。
是否使用操作系统认证,还取决于一个设置
Oracle用户、权限、角色管理
Oracle用户、权限、角色管理Oracle 数据库用户管理Oracle 权限设置一、权限分类:系统权限:系统规定用户使用数据库的权限。
(系统权限是对用户而言)。
实体权限:某种权限用户对其它用户的表或视图的存取权限。
(是针对表或视图而言的)。
二、系统权限管理:1、系统权限分类:DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。
对于普通用户:授予connect, resource权限。
对于DBA管理用户:授予connect,resource, dba权限。
2、系统权限授权命令:[系统权限只能由DBA用户授出:sys, system(最开始只能是这两个用户)]授权命令:SQL> grant connect, resource, dba to 用户名1 [,用户名2]...;[普通用户通过授权可以具有与system相同的用户权限,但永远不能达到与sys用户相同的权限,system用户的权限也可以被回收。
]例:SQL> connect system/managerSQL> Create user user50 identified by user50;SQL> grant connect, resource to user50;查询用户拥有哪里权限:SQL> select * from dba_role_privs;SQL> select * from dba_sys_privs;SQL> select * from role_sys_privs;删除用户:SQL> drop user 用户名 cascade; 将表的操作权限授予全体用户:SQL> grant all on product to public; DBA用户可以操作全体用户的任意基表(无需授权,包括删除):DBA用户:SQL> Create table (id number(10),name varchar2(20));SQL> drop table ;SQL> create tableasselect * from ;5. 实体权限传递(with grant option):user01:SQL> grant select, update on product to user02 with grant option; 实体权限回收:user01:SQL>Revoke select, update on product from user02; 当前正连接的用户不得删除。
Oracle11 用户安全与授权
Oracle11 用户安全与授权数据库安全创建用户唯一用户名缺省表空间指定临时表空间指定表空间使用定额创建数据库用户必须具有系统权限具有CREATE USER 系统权限Sys system两用户默认可具有;也可以通过OEM创建SQL> create user user1 identified by user12 default tablespace users3 temporary tablespace temp;User created.如不指定表空间,默认为缺省表空间,并指定临时表空间;一般指定永久表空间手工创建的权限SQL> conn user1/user1ERROR:ORA-01045: user USER1 lacks CREATE SESSION privilege; logon denied Warning: You are no longer connected to ORACLE.无,指定连接权限;System安全管理员,主要创建用户和授权;SQL> conn system/oracleConnected.SQL> grant create session,create table to user1;Grant succeeded.SQL> conn user1/user1Connected.SQL> create table t1(a1 number(10),a2 number(10)); Table created.有表的创建权利,但11G版本无表的操作权限;空表不占空间;SQL> conn system/oracleConnected.SQL> grant unlimited tablespace to user12系统中所有的表空间随便用;SQL> alter user user12 quota unlimited on users3 quota unlimited on ts24 quota 10M on ts3;User altered.用哪个表空间,就有哪个表空间的配额;表示在users ts2没有配额限制 ts3有10m的使用配额SQL> conn user1/user1Connected.SQL> insert into ts1(1,'aaa');SQL> insert into t1 values (1,2);1 row created.SQL> insert into t1 values (1,2);1 row created.SQL> create table ts2 (a number(18));Table created.SQL> create table ts3(a number(10)) tablespace ts2; Table created.SQL> select table_name,tablespace_name from user_tables; TABLE_NAME TABLESPACE_NAME------------------------------ ------------------------------ T1 USERSTS2 USERSTS3 TS2查询用户情况查询用户名和状态SQL> select username,account_status from dba_users; USERNAME ACCOUNT_STATUS------------------------------ -------------------------------- MGMT_VIEW OPENSYS OPENSYSTEM OPENDBSNMP OPENSYSMAN OPENSCOTT OPENOUTLN EXPIRED & LOCKEDFLOWS_FILES EXPIRED & LOCKEDMDSYS EXPIRED & LOCKEDORDSYS EXPIRED & LOCKEDEXFSYS EXPIRED & LOCKEDUSERNAME ACCOUNT_STATUS------------------------------ -------------------------------- WMSYS EXPIRED & LOCKEDAPPQOSSYS EXPIRED & LOCKEDAPEX_030200 EXPIRED & LOCKEDOWBSYS_AUDIT EXPIRED & LOCKEDORDDATA EXPIRED & LOCKEDCTXSYS EXPIRED & LOCKEDANONYMOUS EXPIRED & LOCKEDXDB EXPIRED & LOCKEDORDPLUGINS EXPIRED & LOCKEDOWBSYS EXPIRED & LOCKEDSI_INFORMTN_SCHEMA EXPIRED & LOCKEDUSERNAME ACCOUNT_STATUS------------------------------ -------------------------------- OLAPSYS EXPIRED & LOCKEDORACLE_OCM EXPIRED & LOCKEDXS$NULL EXPIRED & LOCKEDMDDATA EXPIRED & LOCKEDDIP EXPIRED & LOCKEDAPEX_PUBLIC_USER EXPIRED & LOCKEDSPATIAL_CSW_ADMIN_USR EXPIRED & LOCKEDSPATIAL_WFS_ADMIN_USR EXPIRED & LOCKED30 rows selected.SQL> select tablespace_name,contents from dba_tablespaces; TABLESPACE_NAME CONTENTS------------------------------ ---------SYSTEM PERMANENTSYSAUX PERMANENTUNDOTBS1 UNDOTEMP TEMPORARYUSERS PERMANENTTS2 PERMANENTTS3 PERMANENTTS4 PERMANENTTEMP_TS1 TEMPORARYUNDO_TS1 UNDO10 rows selected.查询配额分配情况SQL> select * from dba_ts_quotas;TABLESPACE_NAME USERNAME BYTES------------------------------ ----------------------------------------MAX_BYTES BLOCKS MAX_BLOCKS DRO---------- ---------- ---------- ---SYSAUX APPQOSSYS 0-1 0 -1 NOTS3 USER1 010485760 0 1280 NOTS2 USER1 0-1 0 -1 NOTABLESPACE_NAME USERNAME BYTES------------------------------ ----------------------------------------MAX_BYTES BLOCKS MAX_BLOCKS DRO---------- ---------- ---------- ---SYSAUX FLOWS_FILES 0-1 0 -1 NOUSERS USER1 0-1 0 -1 NOSYSAUX SYSMAN 88342528-1 10784 -1 NOTABLESPACE_NAME USERNAME BYTES------------------------------ ----------------------------------------MAX_BYTES BLOCKS MAX_BLOCKS DRO---------- ---------- ---------- ---SYSAUX OLAPSYS 3801088-1 464 -1 NO7 rows selected.修改用户管理员可以修改任意用户的权限和口令SQL> conn system/oracleConnected.SQL> alter user user1 identified by hhh 2 ;User altered.SQL> conn user1/hhhConnected.SQL> passwordChanging password for USER1Old password:New password:Retype new password:Password changed口令保存要严格删除用户只能删除空用户当一个用户删除时,其拥有的所有对象也删除删用户、表空间都需要慎重;数据库用户和模式用户和对象集合为一个模式SQL> desc user1.t1Name Null? Type----------------------------------------- -------- ----------------------------A1 NUMBER(10)A2 NUMBER(10)Dba_users 检测用户情况;Dba_ts_quotas 检测用户配额信息权限管理系统权限:创建、维护数据库对象权利;由管理员授权对象权限:自己建的表,自己就可以控制盒作为;访问别人数据库的权利;一个用户对另一个用户的授予;授予权利GRANT EXECUTE ON DBMS_PIPE TO PUBLIC;GRANT UPDATE (ename,sal) ON emp TO user1 WITH CRANT OPTION可以将权利给别人授权选项,WITH ADMIN OPTION可以将权利授予别人;收回权限Revoke create table from user1Revoke create session from scott控制语言 CTLRevoke execute on dbms_pipe frcm scott;SQL> conn system/oracleConnected.SQL> create user user2 identified by user2;User created.SQL> grant create session to user2;Grant succeeded.SQL> conn scott/tiger;Connected.SQL> grant select ,insert,update on dept to user1 with grant option; Grant succeeded.SQL> conn user1/aaaConnected.SQL> select count(*) from scott.dept;COUNT(*)----------4ERROR at line 1:ORA-00942: table or view does not existSQL> grant select on scott.dept to user2;Grant succeeded.SQL> conn user2/user2;Connected.SQL> select count(*) from scott.dept;COUNT(*)----------4系统管理员可以随意收取,不能级联收回,收谁谁没有,对象谁给谁能收;可以级联收,如收回USER1,则user自动收回;SQL> conn scott/tiger;Connected.SQL> revoke select on dept from user2;revoke select on dept from user2*ERROR at line 1:ORA-01927: cannot REVOKE privileges you did not grantSQL> revoke select on dept from user1;Revoke succeeded.SQL> conn user2/user2;Connected.SQL> select count(*) from scott.dept;select count(*) from scott.dept*ERROR at line 1:ORA-00942: table or view does not exist用户授权可以到列,insert(列) update(列) delete (行)select (行)角色管理创建角色、权限给角色,赋予用户角色预定义角色系统已定义好的角色connect (create session)连接数据库ResourceSQL> select role from dba_roles;ROLE------------------------------CONNECTRESOURCEDBA开发者角色;SELECT_CATALOG_ROLEEXECUTE_CATALOG_ROLEDELETE_CATALOG_ROLEEXP_FULL_DATABASEIMP_FULL_DATABASE 数据导入导出权利;LOGSTDBY_ADMINISTRATORDBFS_ROLEAQ_ADMINISTRATOR_ROLEROLE------------------------------AQ_USER_ROLEDATAPUMP_EXP_FULL_DATABASEDATAPUMP_IMP_FULL_DATABASE数据ben的权利;ADM_PARALLEL_EXECUTE_TASKGATHER_SYSTEM_STATISTICSJAVA_DEPLOYRECOVERY_CATALOG_OWNERSCHEDULER_ADMINHS_ADMIN_SELECT_ROLEHS_ADMIN_EXECUTE_ROLEHS_ADMIN_ROLEROLE------------------------------ GLOBAL_AQ_USER_ROLEOEM_ADVISOROEM_MONITORWM_ADMIN_ROLEJAVAUSERPRIVJAVAIDPRIVJAVASYSPRIVJAVADEBUGPRIVEJBCLIENTJMXSERVERJAVA_ADMINROLE------------------------------ CTXAPPXDBADMINXDB_SET_INVOKER AUTHENTICATEDUSERXDB_WEBSERVICESXDB_WEBSERVICES_WITH_PUBLIC XDB_WEBSERVICES_OVER_HTTP ORDADMINOLAPI_TRACE_USEROLAP_XS_ADMINOWB_USERROLE------------------------------OLAP_DBACWM_USEROLAP_USERSPATIAL_WFS_ADMINWFS_USR_ROLESPATIAL_CSW_ADMINCSW_USR_ROLEMGMT_USERAPEX_ADMINISTRATOR_ROLEOWB$CLIENTOWB_DESIGNCENTER_VIEW55 rows selected.用户权限查询权限在多个视图中SQL> select grantee,privilege from dba_sys_privs2 where grantee='USER1';//系统权限GRANTEE PRIVILEGE----------------------------------------------------------------------USER1 CREATE TABLEUSER1 CREATE SESSIONSQL> select table_name,privilege,owner,grantee from dba_tab_privs 2 where grantee='USER1'; //对象权限TABLE_NAME PRIVILEGE----------------------------------------------------------------------OWNER GRANTEE------------------------------ ------------------------------DEPT UPDATESCOTT USER1DEPT INSERTSCOTT USER1权限授予SQL> select grantee,granted_role from dba_role_privs2 where grantee='USER1';no rows selectedSQL> grant resource to user1;Grant succeeded.SQL> select grantee,granted_role from dba_role_privs2 where grantee='USER1';GRANTEE GRANTED_ROLE------------------------------ ------------------------------USER1 RESOURCESQL> select grantee ,privilege from dba_sys_privs2 where grantee='USER1';GRANTEE PRIVILEGE----------------------------------------------------------------------USER1 CREATE TABLEUSER1 UNLIMITED TABLESPACE 默认resource的授予权利;USER1 CREATE SESSION查询角色权限列表SQL> conn / as sysdbaConnected.SQL> select role,privilege from role_sys_privs where role='RESOURCE'; ROLE PRIVILEGE----------------------------------------------------------------------RESOURCE CREATE SEQUENCERESOURCE CREATE TRIGGERRESOURCE CREATE CLUSTERRESOURCE CREATE PROCEDURERESOURCE CREATE TYPERESOURCE CREATE OPERATORRESOURCE CREATE TABLERESOURCE CREATE INDEXTYPE8 rows selected.全过程,创建角色角色授权用户授予角色SQL> create role role1;Role created.SQL> grant create view,create procedure to role1;Grant succeded.SQL> grant select on scott.emp to role1;Grant succeeded.SQL> grant role1 to user1;Grant succeeded.查看情况SQL> select grantee,granted_role from dba_role_privs wheregrantee='USER1';GRANTEE GRANTED_ROLE------------------------------ ------------------------------USER1 ROLE1USER1 RESOURCESQL> select role,privilege from role_sys_privs where role='ROLE1'; ROLE PRIVILEGE----------------------------------------------------------------------ROLE1 CREATE PROCEDUREROLE1 CREATE VIEWSQL> select role,privilege ,owner,table_name from role_tab_privs where role='ROLE1';ROLE PRIVILEGE----------------------------------------------------------------------OWNER TABLE_NAME------------------------------ ------------------------------ROLE1 SELECTSCOTT EMP权限查询视图主要有Dba_sys_privsDba_tab_privsDba_role_privsRole_sys_privsRole_tab_privsRole_role_privs权限删除rebokecreate any table 创建别人用户权限;select any dictionary 查看所有数据字典的权限;oem的查看授权;概要文件Profiles 概要文件;限制系统中用户使用系统资源的集合;Default 资源使用限制;MONITORING_PROFILE 监视用户资源;主要是口令修改锁定和用户密码多次用错锁定。
Oracle11g数据库第三章课件
授予角色 内容回顾:
可以使用CREATE ROLE语句创建一个角色。 授予角色时,可以使用WITH OPTION,WITH ADMIN OPTION为被 授权者提供了将同一个角色授予其他用户的权利。 角色存在于一个名称空间中,这个名称空间存在于任何一个用 户账户之外。 一个角色是由一个由一组权限和其他角色组成的集合。 可以将一个角色授予其他角色。
VIEW
SEQUENCE
常见的八种主数据库对象类型
SYNONYM CONSTRAINT USERS ROLES 数据库中另外一个对象的别名,经常用来为表或视图指定一个可 选的名称。 由程序员定义的一小段逻辑,用来指示特定的表如何接受、修改 或拒绝输入数据。 数据库对象的“所有者”。 可以授权给用户的一种或多种权限。
我们来看下面的例子。
对表或其他对象进行命名 对于下面的语句:
CREATE TABLE ports ( port_id NUMBER, port_name VARCHAR2(20)); 1. 表名为 ports ,以小写字母输入,数据库会自动转 换为大写字母,最终得到的对象名为:PORTS。 2. 当使用SQL引用这个对象时,下面的形式均可: SELECT * FROM ports; SELECT * FROM PORTS;
区分权限和角色
内容回顾:
直接授予用户的权限与授予角色的权限是相互独立存在的。 如果直接从一位用户那里收回了一项权限,同时这位用户被授 予的一个角色也包含了同一项权限,那么这个角色将保持不变, 用户仍然通过这个角色拥有这项权限。 如果直接从角色那里收回权限,那么上面的情况同样也会发生。 如果从一位用户拥有的某个角色那里收回了一项权限,同时这位 用户被直接授予了这项权限,那么这项直接授予的权限依然存在 并仍然起着作用。
oracle用户权限管理
Oracle 11G数据库应用开发
概要文件(续)
FAILED_LOGIN_ATTEMPTS: 最大错误登录次数
PASSWORD_LOCK_TIME:登录失败后账户被锁天数
PASSWORD_LIFE_TIME:密码有效天数 PASSWORD_GRACE_TIME:用户密码被中止前多少天提 醒用户修改密码 PASSWORD_REUSE_TIME:用户修改密码后多少天,用 户才可以再次使用原来的密码 PASSWORD_REUSE_MAX:密码被重新使用后,可修改 的次数 PASSWORD_VERIFY_FUNCTION:密码复杂度审计函数
一个用户被多用户授予权限后其中一个用户收回权限不影响其他用户授予的权限收回withgrantoption或withadminoption要首先回收相应的权限再重新授予该权限而不再授予withrantgoption或withadminoption传递权限withadminoption给其他用后如果此系统权限被回收其他用户仍然拥有该系统权限传递权限withgrantoption给其他用后如果此对象权限被回收其他用户该对象权限也被收回oracle11g数据库应用开发权限查询?视图usersysprivs
Revoke r_teach from r_stu
删除角色 drop role r_teach
Oracle 11G数据库应用开发
角色(续)
数据库预定义角色:
Connect (登录执行基本函数)、 Resource(建立用户自己的数据对象)、 DBA(所有系统权限,包括无限的空间限额、给 其他用户授予全部权限的能力)
– grant select on class to – grant teach to
teach;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle11g基础--对象权限
授予精确到列上的权限
grant update(ename,sal) on scott.emp to wang;
允许用户更新 emp 表中的ename、sal列
Oracle11g基础—角色管理
收回系统权限REVOKE 例:REVOKE create session FROM test1;
GRANT 命令可用于为用户分配权限或角色
GRANT CREATE SESSION TO wang;
此系统权限允许用户连接到数据库上
GRANT CREATE TABLE TO wang;
赋给wang用户以创建表的系统权限
Oracle 默认用户
SYS
SYSTEM
SCOTT
数据库中所有数据字典表和视图都存储在 SYSTEM 是默认的系统管理员,该用户拥有 SYS Oracle 模式中。 管理工具使用的内部 SYS用户主要用 SCOTT用户是Oracle 数据库的一个示范帐户,在数据库安装时创建 来维护系统信息和管理实例。 表和视图。通常通过SYSTEM用户管理数据库用户、权限和存储等
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. 角色管理:角色是一组相关权限的组合,可以将权限授予角 色,再把角色授予用户,以简化权限管理。 (1)创建角色CREATE ROLE,应该具有CREATE ROLE系统权限。 CREATE ROLE role_name; (2) 授予角色权限,可以是系统权限或者对象权限。 GRANT privilege TO ROLE; 例: grant create session ,create any table, drop any table to role1; (3) 将角色授予用户 GRANT role TO user; 例: grant role1 to test2; (4) 从用户收回角色 REVOKE role FROM user;
终止口令:需要每隔 10 天修改密码,最多宽限 2 天: ALTER PROFILE "PRO1" LIMIT PASSWORD_LIFE_TIME 10 PASSWORD_GRACE_TIME 2。
删除 profile : drop profile pro1 cascade; 使得 test1 的 profile重新变成了default
GRANT UNLIMITED TABLESPACE TO wang;
此系统权限允许wang用户任意使用表空间
Oracle11g基础--对象权限
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. 对象权限:访问某个用户的特定对象(如表、视图等) 的对象权限(select on scott.student) GRANT object_privilege [columns…] ON object TO user [, user|role, PUBLIC…] [WITH GRANT OPTION]; 收回对象权限REVOKE: REVOKE privilege ON object FROM {user|role|PUBLIC}; 例:revoke select on scott.student from test2;
第三部分 用户的使用 2,掌握系统权限的含义及授予、回收 3,掌握对象权限的含义及授予、回收 4,掌握角色的含义、对角色授予权限、把角色分配 给用户
Oracle11g基础--默认用户
只有用合法的用户帐号才能访问Oracle数据库 Oracle 有几个默认的数据库用户
Oracle11g基础--创建新用户
要连接到Oracle数据库,就需要创建一个用户帐户
每个用户都有一个默认表空间和一个临时表空间
CREATE USER命令用于创建新用户 CREATE USER 命令的语法是:
CREATEUSER USER username CREATE wang IDENTIFIED BY password IDENTIFIED BY wangpwd;
删除 wang用户模式
此系统权限允许用户连接到数据库上
Oracle11g基础--更改和删除用户
ALTER USER 命令可用于更改口令
ALTER USER wang IDENTIFIED BY wangnewpwd;
修改 wang用户的密码
DROP USER 命令用于删除用户
DROP USER wang [CASCADE];
其 中 , FAILED_LOGIN_ATTEMPTS: 用 于 指 定 联 系 登 陆 的 最 大 失 败 次 数 . PASSWORD_LOCK_TIME:用于指定帐户被锁定的天数. 创建属于pro1的用户: create user aa identified by aa profile pro1; 修改用户的profile文件: alter user test1 profile pro1;
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. 授予用户权限,可以是系统权限或者对象权限。 GRANT privilege [,privilege…] TO user [, user|role, PUBLIC…] [WITH ADMIN OPTION]; 说明:包含了WITH ADMIN OPTION,只能是系统权限。
profile(概要文件)管理用户2
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. 解除锁定: alter user test1 account unlock;
GRANT 命令可用于为用户分配权限或角色
GRANT CONNECT TO wang;
CONNECT角色允许用户连接至数据库, 并创建数据库对象
GRANT RESOURCE TO wang;
RESOURCE角色允许用户使用 数据库中的存储空间
GRANT CREATE SESSION TO wang;
Oracle11g基础—对象权限
授予用户 wang操作EMP表对象的权限
GRANT SELECT ON SCOTT.EMP TO wang;
允许用户查询 EMP 表的记录
GRANT UPDATE ON SCOTT.EMP TO wang;
允许用户更新 EMP 表中的记录
GRANT ALL ON SCOTT.EMP TO wang;
[DEFAULT TABLESPACE tablespace] 创建一个名称为 wang 的用户,其密码为 [TEMPORARY TABLESPACE tablespace]; wangpwd
profile(概要文件)管理用户1
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. 当创建用户时候,如果没有指定profile,那么Oracle把名字叫default的profile赋予 给用户。 指定test1只能最多输入3次密码, 创 建 profile 文 件 : create password_lock_time 2; profile pro1 limit failed_login_attempts 3
Oracle11g基础--权限
权限指的是执行特定命令或访问数据库对象的权 利 权限有两种类型,系统权限和对象权限
系统权限允许用户执行某些数据库操作,如创建表就 是一个系统权限 对象权限允许用户对数据库对象(如表、视图、序列 等)执行特定操作