oracle系统用户权限区别
oracle 查看用户、权限、角色
查看用户、权限、角色的命令和视图a1.查看所有用户:select * from dba_users;select * from all_users;select * from user_users;2.查看用户系统权限:select * from dba_sys_privs;select * from session_privs;select * from user_sys_privs;3.查看用户对象权限:select * from dba_tab_privs;select * from all_tab_privs;select * from user_tab_privs;4.查看所有角色:select * from dba_roles;5.查看用户所拥有的角色:select * from dba_role_privs;select * from user_role_privs;b概述与权限,角色相关的视图大概有下面这些:DBA_SYS_PRIVS: 查询某个用户所拥有的系统权限USER_SYS_PRIVS: 查询当前用户所拥有的系统权限SESSION_PRIVS: 查询当前用户所拥有的全部权限ROLE_SYS_PRIVS:查询某个角色所拥有的系统权限注意: 要以SYS用户登陆查询这个视图,否则返回空.ROLE_ROLE_PRIVS: 当前角色被赋予的角色SESSION_ROLES: 当前用户被激活的角色USER_ROLE_PRIVS: 当前用户被授予的角色另外还有针对表的访问权限的视图:TABLE_PRIVILEGESALL_TAB_PRIVSROLE_TAB_PRIVS: 某个角色被赋予的相关表的权限oracle与用户角色权限相关的视图Oracle 本身的数据字典设计我个人觉得很合理, 因为DBA_xxx, ALL_xxx,USER_xxx 让人一看大概就知道这个视图是干什么用的. 本文简要总结了一下与权限,角色相关的视图.一. 概述与权限,角色相关的视图大概有下面这些:1、DBA_SYS_PRIVS: 查询某个用户所拥有的系统权限。
数据库用户管理和权限管理
数据库用户管理和权限管理1. 引言在数据库系统中,用户管理和权限管理是非常重要的功能。
通过用户管理,可以创建、修改和删除数据库用户,并为其分配相应的权限;通过权限管理,可以控制用户对数据库中数据和对象的访问和操作。
本文将介绍数据库用户管理和权限管理的基本概念、操作方法以及相关注意事项。
2. 数据库用户管理2.1 用户概念在数据库系统中,一个用户代表一个具有一定身份和权限的操作者。
每个用户都有自己的用户名和密码用于登录数据库系统。
2.2 用户创建创建新用户是管理员对数据库进行用户管理的第一步。
在大多数数据库系统中,可以使用以下语句来创建新用户:CREATE USER username IDENTIFIED BY password;其中,username为要创建的用户名,password为该用户名对应的密码。
2.3 用户修改在某些情况下,需要修改已存在的用户信息。
例如,当需要更改用户名或密码时,可以使用以下语句来修改现有用户:ALTER USER username IDENTIFIED BY new_password;2.4 用户删除当某个用户不再需要访问数据库时,可以使用以下语句将其从数据库中删除:DROP USER username;需要注意的是,在执行删除操作之前,请确保该用户已经没有任何重要数据或对象依赖于它。
3. 数据库权限管理3.1 权限概念数据库权限是指用户对数据库中数据和对象的访问和操作权力。
在数据库系统中,常见的权限包括SELECT、INSERT、UPDATE、DELETE等。
3.2 权限分配在数据库系统中,可以使用以下语句为用户分配权限:GRANT privilege ON object TO user;其中,privilege为要授予的权限,object为要授权的对象(如表、视图等),user为要授权给的用户。
3.3 权限撤销当某个用户不再需要某个权限时,可以使用以下语句将该权限从用户身上撤销:REVOKE privilege ON object FROM user;3.4 角色管理角色是一种特殊类型的用户,它可以扮演多个用户之间共享的角色,并且具有一组预定义的权限。
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; //加上cascade则将用户连同其创建的东西全部删除3、系统权限传递:增加WITH ADMIN OPTION选项,则得到的权限可以传递。
Oracle 用户及角色 介绍
Oracle 用户及角色介绍一. 用户管理1.1 建立用户(数据库验证)CREATE USER DAVE IDENTIFIED BY pwdDEFAULT TABLESPACE usersTEMPORARY TABLESPACE tempQUOTA 5m ON users;1.2 修改用户ALTER USER DAVE QUOTA 0 ON SYSTEM;1.3 删除用户DROP USER DAVE;DROP USER DAVE CASCADE;1.4 显示用户信息SELECT * FROM DBA_USERSSELECT * FROM DBA_TS_QUOTAS二.系统权限系统权限是指执行特定类型SQL命令的权利,用于控制用户可以执行的一个或一类数据库操作。
(新建用户没有任何权限)2.1 授予系统权限GRANT CREATE SESSION,CREATE TABLE TO DAVE;GRANT CREATE SESSION TO DAVE WITH ADMIN OPTION;选项:ADMIN OPTION 使该用户具有转授系统权限的权限。
2.2 显示系统权限查看所有系统权限:Select * from system_privilege_map;显示用户所具有的系统权限:Select * from dba_sys_privs;显示当前用户所具有的系统权限:Select * from user_sys_privs;显示当前会话所具有的系统权限:Select * from session_privs;2.3 收回系统权限REVOKE CREATE TABLE FROM DAVE;REVOKE CREATE SESSION FROM DAVE;三 .角色:角色是一组相关权限的命名集合,使用角色最主要的目的是简化权限管理。
3.1 预定义角色。
CONNECT自动建立,包含以下权限:ALTER SESSION、CREATE CLUSTER、CREATE DATABASELINK、CREATE SEQUENCE、CREATE SESSION、CREATE SYNONYM、CREATE TABLE、CREATEVIEW。
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来获得当前会话下该用户的默 认角色。管理员可以禁用用户的默认角色,一旦禁用,则用 户从该角色获得的权限将不再有效。
系统权限与用户权限
SQL> grant select on sys.dba_users to jie2;
Grant succeeded.
SQL> conn jie2/jie; --用户jie2 登录
Connected.
SQL> select username from sys.dba_users where rownum<2;
(2)系统权限无级联,即A授予B权限,B授予C权限,如果A收回B的权限,C的权限不受影响;系统权限可以跨用户回收,即A可以直接收回C用户的权限。
系统权限回收:系统权限只能由DBA用户回收
命令:SQL> Revoke create table from jie1;
系统权限收回的时候是不会级联收回的,以上已经证明
select * from system_privilege_map;
查询用户拥有哪些权限:
SQL> select * from dba_role_privs; 查看用户拥有的角色
SQL> select * from dba_sys_privs; 查看用户拥有的权限
SQL> select * from role_sys_privs; 查看角色拥有的权限
Revoke succeeded.
SQL> conn jie1/jie; --jie1用户登录
Connected.
SQL> select * from sys.dba_users;
select * from sys.dba_users
*
Connected.
SQL> create table tb_jie2(id number); --用户jie1创建表失败
oracle增删改表空间和用户授权及权限
oracle创建表空间、用户如果是在Windows系统下,请先点击“开始”,然后点“运行”,输入cmd并点击“确定”,打开命令行窗口如果是在Linux的图形窗口,请右键点击桌面并点击“打开终端”,然后输入su - oracl 做好上述准备工作以后,输入以下命令:sqlplus /nolog回车后,将出现提示符SQL>这时输入conn / as sysdba一般即可登录,如果失败的话,可以试一下用conn sys/sys用户的密码as sysdba来重试一下接下来,我们看看您当前的数据库文件一般都是放在哪里的:select name from v$datafile;windows下可能看到的结果如下:SQL> select name from v$datafile;NAME--------------------------------------------------------------------------------D:\oracle\oradata\orcl\system01.dbfD:\oracle\oradata\orcl\undotbs01.dbfD:\oracle\oradata\orcl\cwmlite01.dbfD:\oracle\oradata\orcl\drsys01.dbfD:\oracle\oradata\orcl\indx01.dbfD:\oracle\oradata\orcl\tools01.dbf说明您的数据文件是放在D:\oracle\/oradata\orcl\ 这个目录下的Linux下可能看到的结果如下:SQL> select name from v$datafile;NAME--------------------------------------------------------------------------------/oracle/oradata/orcl/system01.dbf/oracle/oradata/orcl/undotbs01.dbf/oracle/oradata/orcl/cwmlite01.dbf/oracle/oradata/orcl/drsys01.dbf/oracle/oradata/orcl/indx01.dbf/oracle/oradata/orcl/tools01.dbf说明您的数据文件是放在/oracle/oradata/orcl/ 这个目录下的好,我们可以开始创建数据库表空间了,创建数据库表空间的命令格式如下:create tablespace 表空间名datafile '对应的文件名' size 大小;举例如下:对于上述的windows情况:create tablespace wbppcs datafile 'D:\oracle\oradata\orcl\wbppcs.dbf' size 3000m;3000m指的是3000MB对于上述的Linux的情况:create tablespace wbppcs datafile '/oracle/oradata/orcl/wbppcs.dbf' size 3000m;至此,所需的表空间已建立接下来我们开始创建用户,创建用户的命令格式如下:create user 用户名identified by 密码default tablespace 用户默认使用哪一个表空间;修改用户的权限:grant 角色1,角色2 to 用户名;举例如下:create user wbppcs identified by wbppcs123 default tablespace wbppcs;给用户授权:grant dba, connect to wbppcs;=============================================================================== ==============================================================oracle创建表空间和用户授权SYS用户在CMD下以DBA身份登录:在CMD中打sqlplus/nolog //匿名登录然后再conn/as sysdba //以dba身份登录//创建临时表空间create temporary tablespace bigoa_temptempfile 'E:\oracle\product\10.2.0\oradata\orcl\bigoa_temp.dbf'size 50mautoextend onnext 50m maxsize 2048mextent management local;//创建数据表空间create tablespace bigoaloggingdatafile'E:\oracle\product\10.1.0\oradata\orcl\bigoa.dbf'size 50mautoextend onnext 50m maxsize 2048mextent management local;//查看数据表空间select tablespace_name from dba_data_files;//创建用户并指定表空间create user swoa identified by oadefault tablespace bigoatemporary tablespace temp;//给用户授予权限grant connect,resource,dba,CTXAPP,create view to swoa;以后以该用户登录,创建的任何数据库对象都属于user_temp和user_data表空间,这就不用在每创建一个对象给其指定表空间了//修改用户口令alter user user_name identified by password;撤权:revoke 权限... from 用户名;删除用户命令drop user swoa cascade;//删除表空间drop tablespace bigoa_temp including contents and datafiles cascade constraints;//including contents 删除表空间的内容,如果删除表空间之前表空间中有内容,而未加此参数,表空间删不掉//cascade constraints 同时删除tablespace中表的外键参照//数据导出注:退出到cmd命令下再运行下列命令1、将数据库TEST完全导出,用户名system密码manager,导出到D:daochu.dmp中exp pobaoa/oa@orcl file=d:/zyoa0809.dmp full=y //不用加full=y,加上的意思是连同系统表一起导出exp sjsoa/oa@orcl file=d:/sjsoa1224.dmp full=y //不用加full=y,加上的意思是连同系统表一起导出2、将数据库中system用户与sys用户的表导出exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)3、将数据库中的表inner_notify notify_staff_relat导出exp aichannel/aichannel@TESTDB2 file=d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)exp swoa/oa@orcl file=f:/swoa11.dmp tables=(OA_CALENDAR)exp bigoa/bigoa@orcl file=f:/bigoatemp.dmp tables=(OA_CALENDAR)4、将数据库中的表table1中的字段field1以“00”开头的数据导出exp system/manager@TEST file=d:daochu.dmp tables=(table1) query="where filed1 like '00%'"//数据导入注:退出到cmd命令下再运行下列命令1、将D:daochu.dmp中的数据导入TEST数据库中imp aichannel/aichannel@HUST full=y file=d:datanewsmgnt.dmp ignore=y有的表已经存在,所以会报错,加上ignore=y就可以了imp pobaoa/oa@orcl file=f:\zyoa0916.dmp full=y ignore=yimp sjsoa/oa@orcl file=f:/bigoatemp.dmp full=y2、将d:daochu.dmp中的表table1导入imp system/manager@TEST file=d:daochu.dmp tables=(table1)select INSTANCEID,NID,TITLE,NODENAME,ASSIGNER,NODEBEGIN,initiatorname,'办理状态'As blzt from view_wf_todo where actor='%USERID%' order by nodebegin descsqlplus / as sysdba。
Oracle用户及权限管理
25
2014年5月28日星期三
Oracle数据库管理
Oracle 数据库管理
课堂训练-3
1、设置用户密码失效 2、并测试是否修改成功
26
2014年5月28日星期三
Oracle数据库管理
Oracle 数据库管理
锁定和解除用户锁定
如果要禁止某个用户访问Oracle 系统,那么最好的方式是锁定该用户,而不 是删除该用户。锁定用户并不影响该用户所拥有的对象和权限,这些对象和权限依 然存在,只是暂时不能以该用户的身份访问系统。当锁定解除后,该用户可以正常 地访问系统、按照自己原有的权限访问各种对象。
Oracle 数据库管理
本讲目标
能初步掌握用户的管理 能初步掌握用户权限的管理 能初步掌握角色的管理
3
2014年5月28日星期三
Oracle数据库管理
Oracle 数据库管理
1、用户与模式的关系
用户:Oracle用户是用于连接数据库和访问数据库对象的。 模式(方案):是用户所拥有的数据库对象的集合,模式对象是数 据库数据的逻辑结构
其中
在创建用户时,创建者必须具有create user系统权限。
user_name指定将要创建的新数据库用户名称。 Password指定该新数据库用户的密码。 def_tablespace指定存储该用户所创建对象的默认表空间。 temp_tablespace指定存储临时对象的默认表空间。
18
15
2014年5月28日星期三
Oracle数据库管理
Oracle 数据库管理
oracle的normal 、 sysdba 、 sysoper 有什么区别 ?
注意:system 如果正常登录,它其实就是一个普通的 dba 用户,但是 如果以 as sysdba 登录,其结果实际上它是作为 sys 用户登录的。其 他用户也是一样,如果 as sysdba 登录,也是作为 sys 用户登录的。
oracle授权
oracle授权篇一:Oracle授权简介在企业信息化建设中,数据库作为核心应用系统的基础设施之一,起着关键的作用。
而Oracle数据库则是业界领先的数据库解决方案之一,广泛应用于各个行业的企业中。
为了保证数据库系统的安全和可靠运行,Oracle授权是必不可少的一环。
Oracle授权是指通过购买相应的授权许可来合法使用Oracle软件的过程。
授权许可的种类和规模根据企业实际需求而定,一般包括个人开发人员许可、开发人员学习许可、基本许可和企业版许可等。
在进行授权时,用户需要根据自己的具体情况选择适合的许可类型,并按照Oracle公司的授权政策和规定进行购买和申请。
Oracle授权的主要目的是保护Oracle软件的知识产权,确保合法使用软件,遵守软件许可协议。
通过合法授权,用户可以享受到一些特殊的权益和支持,如获得技术支持、更新和升级服务等。
同时,合法授权还可以避免因未授权使用软件而带来的法律风险和商业风险。
Oracle授权的步骤一般包括以下几个环节:1. 了解授权政策和规定:在进行Oracle授权之前,用户需要详细了解Oracle公司的授权政策和规定。
可以通过官方网站、文档或与Oracle授权代理商进行咨询来获取相关信息。
2. 选择许可类型:根据企业的实际需求和预算情况,选择适合的许可类型。
一般情况下,个人开发人员许可适用于个人开发者,企业版许可适用于大型企业等。
3. 购买和申请许可:联系Oracle授权代理商或在线购买渠道,按照流程购买和申请许可证书。
在申请过程中,需要提供相关的企业信息和购买证明。
4. 安装和配置:获得许可证书后,按照Oracle官方的指导文档进行软件的安装和配置。
在安装过程中,需要输入许可证书和其他必要的信息。
5. 注册和激活:安装完成后,需要将许可证书进行注册和激活。
注册和激活的具体操作方式根据许可类型和版本而异,可参考相应的官方文档。
6. 合规管理和维护:授权后,用户需要进行合规管理和维护工作。
oracle 用户名规则
oracle 用户名规则
Oracle数据库的用户名规则如下:
长度限制:Oracle数据库用户名的最大长度为30 个字符。
允许字符:用户名可以包含字母、数字和美元符号($)。
首字符限制:用户名必须以字母开头。
保留字检查:用户名不能是Oracle数据库的保留字(例如,SELECT、FROM等)。
区分大小写:Oracle数据库默认区分用户名的大小写。
例如,"User1" 和"user1" 视为两个不同的用户名。
特殊字符:Oracle用户名中可以包含下划线(_)、美元符号($)、井号(#)和在特定情境下的其他一些特殊字符。
但是,建议谨慎使用特殊字符,因为它们可能在某些情况下引发问题。
1。
oracle grant 的规则
Oracle数据库中grant是用来赋予用户或角色对数据库对象进行访问和操作的权限的命令。
在Oracle数据库中,grant权限有一定的规则和限制,本文将对Oracle grant的规则进行详细的介绍。
一、权限的种类1.1 数据库级的权限在Oracle数据库中,grant权限可以分为数据库级的权限和对象级的权限。
数据库级的权限包括CREATE SESSION、ALTER SYSTEM、GRANT ANY PRIVILEGE等。
这些权限是针对整个数据库的,只有具有这些权限的用户或角色才能进行相应的操作。
1.2 对象级的权限对象级的权限是针对具体的数据库对象,如表、视图、存储过程等。
常见的对象级权限包括SELECT、INSERT、UPDATE、DELETE等。
这些权限控制了用户对于特定对象的访问和操作权限。
二、grant权限的语法2.1 给用户授权权限grant权限的语法是:GRANT privilege ON object TO user;其中,privilege表示要授予的权限,可以是数据库级的权限,也可以是对象级的权限;object表示要授权的对象,可以是表、视图、存储过程等;user表示被授权的用户。
2.2 给角色授权权限与给用户授权类似,给角色授权的语法是:GRANT privilege ON object TO role;其中,role表示被授权的角色。
2.3 with grant option在grant权限的语法中,还可以使用with grant option来允许被授权的用户或角色将权限再授予给其他用户或角色,语法为:GRANT privilege ON object TO user WITH GRANT OPTION;三、grant权限的规则和限制3.1 grant权限的层级在Oracle数据库中,权限是按照层级进行继承和控制的。
数据库级的权限是最高级的,只有具有数据库级权限的用户或角色才能授予其他用户或角色相应的权限。
Oracle数据库中SYS、SYSTEM、DBSNMP、SYSMAN四用户的区别及Oracle的三种登录身份
Oracle数据库中SYS、SYSTEM、DBSNMP、SYSMAN四用户的区别以及Oracle的三种登录身份SYS用户:SYS,默认密码为CHANGE_ON_INSTALL,当创建一个数据库时,SYS用户将被默认创建并授予DBA角色,所有数据库数据字典中的基本表和视图都存储在名为SYS的方案中,这些基本表和视图对于Oracle数据库的操作时非常重要的。
为了维护数据字典的真实性,SYS 方案中的表只能由系统来维护,他们不能被任何用户或数据库管理员修改,而且任何用户不能在SYS方案中创建表。
SYSTEM用户:SYSTEM,默认密码为MANAGER,与SYS一样,在创建Oracle数据库时,SYSTEM用户被默认创建并被授予DBA角色,用于创建显示管理信息的表或视图,以及被各种Oracle数据库应用和工具使用的内容表或视图。
DBSNMP用户:DBSNMP是Oracle数据库中用于智能代理(Intelligent Agent)的用户,用来监控和管理数据库相关性能的用户,如果停止该用户,则无法提取相关的数据信息;SYSMAN用户:SYSMAN是Oracle数据库中用于EM管理的用户,如果你不用该用户,也可以删除。
sys和system用户的区别【system】用户只能用normal身份登陆em。
【sys】用户具有“SYSDBA”或者“SYSOPER”权限,登陆em也只能用这两个身份,不能用normal。
“SYSOPER”权限,即数据库操作员权限,权限包括:打开数据库服务器关闭数据库服务器备份数据库恢复数据库日志归档会话限制“SYSDBA”权限,即数据库管理员权限,权限包括:打开数据库服务器关闭数据库服务器备份数据库恢复数据库日志归档会话限制管理功能创建数据库normal 、sysdba、 sysoper的区别:normal 是普通用户sysdba拥有最高的系统权限sysoper主要用来启动、关闭数据库,不能创建和删除数据库sysoper 登陆后default schema是 public,sysdba登陆后default schema是 sys简单区别如下:SQL> conn sys/oracle as sysdba;Connected to an idle instance.SQL> show user;USER is “SYS”SQL> conn sys/oracle as sysoper;Connected to an idle instance.SQL> show user;USER is “PUBLIC”SQL>Note:The SYSDBA and SYSOPER system privileges allow access to a database instance even when the database is not open. Control of these privileges is totally outside of the database itself.SYSDBA和SYSOPER系统权限允许我们在数据库打开之前以这两种身份去访问实例。
Oracle数据库的用户和权限管理
5.2.2 创建角色
使用CREATE ROLE语句可以创建一个新的角色,执行该语 句的用户必须具有CREATE ROLE系统权限。
在角色刚刚创建时,它并不具有任何权限,这时的角色是 没有用处的。因此,在创建角色之后,通常会立即为它授予权 限。例如:利用下面的语句创建了一个名为OPT_ROLE的角色, 并且为它授予了一些对象权限和系统权限:
ORACEL利用角色更容易地进行权限管理。有下列优点: (1)减少权限管理,不要显式地将同一权限组授权给 几个用户,只需将这权限组授给角色,然后将角色授权给 每一用户。 (2)动态权限管理,如果一组权限需要改变,只需修 改角色的权限,所有授给该角色的全部用户的安全域将自 动地反映对角色所作的修改。 (3)权限的选择可用性,授权给用户的角色可选择地 使其可用或不可用。 (4)应用可知性,当用户经用户名执行应用时,该数 据库应用可查询字典,将自动地选择使角色可用或不可用。 (5)应用安全性,角色使用可由口令保护,应用可提 供正确的口令使用角色,如不知其口令,不能使用角色。
系统权限可授权给用户或角色,一般,系统权限只授 予管理人员和应用开发人员,终端用户不需要这些相关功 能。 2)对象权限:在指定的表、视图、序列、过程、函数或包 上执行特殊动作的权利。
2.角色 为相关权限的命名组,可授权给用户和角色。数据库角 色包含下列功能: (1)一个角色可授予系统权限或对象权限。 (2)一个角色可授权给其它角色,但不能循环授权。 (3)任何角色可授权给任何数据库用户。 (4)授权给用户的每一角色可以是可用的或者不可用 的。一个用户的安全域仅包含当前对该用户可用的全部角 色的权限。 (5)一个间接授权角色对用户可显式地使其可用或不 可用。 在一个数据库中,每一个角色名必须唯一。角色名与用 户不同,角色不包含在任何模式中,所以建立角色的用户 被删除时不影响该角色。
oracle权限分配
我们将从创建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 optiongrant alert table on tablename to zhangsan with grant option;//关键字 with grant option效果和admin类似九、角色角色即权限的集合,可以把一个角色授予给用户create role myrole;//创建角色grant create session to myrole;//将创建session的权限授予myrole grant myrole to zhangsan;//授予zhangsan用户myrole的角色drop role myrole;删除角色/*但是有些权限是不能授予给角色的,比如unlimited tablespace和any 关键字*/。
Oracle数据库、实例、用户、表空间、表之间的关系
数据文件(dbf、ora): 数据文件是数据库的物理存储单位。数据库的数据是存储在表空间中的,真 正是在某一个或者多个
注:
表的数据,是有用户放入某一个表空间的,而这个表空间会随机把这些表数据放到一个或者多个数据文 件中。由于 oracle 的数据库不是普通的概 念,oracle 是有用户和表空间对数据进行管理和存放的。但 是表不是有表空间去查询的,而是由用户去查的。因为不同用户可以在同一个表空间建立同一个名 字 的表!这里区分就是用户了!
Oracle 数据库、实例、用户、表空间、角色基本概念和关系
数据库: Oracle 数据库是数据的物理存储。这就包括(数据文件 OR的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库。可以看作 是 Oracle 就只有一个大数据库。
具体操作如下图所示:
操作 2: 创建表和插入数据,并查询浏览插入的数据。 1,创建表,输入: create table 表名( 字段名称 1 字段类型, 字段名称 2 字段类型, 字段名称 3 字段类型 );,回车。 2,插入数据,输入:insert into 表名(字段 1,字段 2,字段 3) VALUES(值 1,值 2,值 3);,回车。 3,查询数据,输入:select * from 表名;,回车。 具体操作如下图所示:
1,运行 CMD 进入 DOS 界面,首先输入:sqlplus,回车;再输入:sys/sys as sysdba,回车,即进入 “SQL〉”操作状态。
2,输入:CREATE TABLESPACE 表空间名称 LOGGING DATAFILE 'c:\表空间数据文件.ora' SIZE 500M autoextend on next 200m maxsize 2048m;,表空间创建完成。
Oracle查看用户、用户权限、用户表空间、用户默认表空间
Oracle查看⽤户、⽤户权限、⽤户表空间、⽤户默认表空间查看⽤户和默认表空间的关系。
select username,default_tablespace from dba_users;1.查看表结构:desc表名2.查看当前⽤户的表:select table_name from user_tables;3.查看所有⽤户的表名:select table_name from all_tables;4.查看所有表名(其中包括系统表)select table_name from all_tables;5.查看所有的表:select * from tab/dba_tables/dba_objects/cat;下⾯介绍Oracle查询⽤户表空间◆Oracle查询⽤户表空间:select * from user_all_tables◆Oracle查询所有函数和储存过程:select * from user_source◆Oracle查询所有⽤户:select * from all_users select * from dba_users◆Oracle查看当前⽤户连接:select * from v$Session◆Oracle查看当前⽤户权限:select * from session_privs◆Oracle查看⽤户表空间使⽤情况:select a.file_id "FileNo",a.tablespace_name"Tablespace_name",a.bytes "Bytes",a.bytes-sum(nvl(b.bytes,0)) "Used",sum(nvl(b.bytes,0)) "Free",sum(nvl(b.bytes,0))/a.bytes*100 "%free"from dba_data_files a, dba_free_space bwhere a.file_id= b .file_id(+)group by a.tablespace_name ,a.file_id,a.bytes order by a.tablespace_name;1、查看所有⽤户:select * from dba_user;select * from all_users;select * from user_users;2、查看⽤户系统权限:select * from dba_sys_privs;select * from all_sys_privs;select * from user_sys_privs;3、查看⽤户对象权限:select * from dba_tab_privs;select * from all_tab_privs;select * from user_tab_privs;4、查看所有⾓⾊:select * from dba_roles;5、查看⽤户所拥有的⾓⾊:select * from dba_role_privs;select * from user_role_privs;6、查看⾓⾊所拥有的权限:select * from role_sys_privs;select * from role_tab_privs;7、查看所有系统权限select * from system_privilege_map;8、查看所有对象权限select * from table_privilege_map;以上是在Oracle中查看⽤户权限,在DB2中为:select * from syscat.dbauth或者get authorizations查看sidselect * from v$instance。
Oraclesys和system用户
启动过程实例启动→·装载数据库→·打开数据库sysdba,是管理orac le实例的,它的存在不依赖于整个数据库完全启动,只要实例启动了,他就已经存在,以sysdba身份登陆,装载数据库、打开数据库。
只有数据库打开了,或者说整个数据库完全启动后,dba角色才有了存在的基础!默认密码:sys change_on_install (意思是安装时改变,我改成zxsz4084)system managerscott tiger在10g里面,sys用户必须以sysdb a/sysoper身份登陆数据库。
解决办法 sqlplussys/zxsz4084 as sysdba再说后者。
一看你的sys tem用户密码就是错误得,你说你在安装时候改过密码,应该就是和你的sys用户密码一样得,应该是zxsz4084,而不是默认得密码manag er,你要是是对sy stem用户进行解锁的话,系统自然要提醒你修改密码,所以密码应该不是manag er。
概念:SYS用户是O racle中权限最高的用户,而SYSTEM是一个用于数据库管理的用户。
在数据库安装完之后,应立即修改SY S,SYSTEM这两个用户的口令,以保证数据库的安全。
可以用三种方法修改口令:sqlplus / as sysdba;1.sql> alter user sys identif ied by 1234562.sql>grant connect to sys identif ied by 1234563.sql>passwor d system(注:此命令只适用于SYSTEM)SYS和SYS TEM用户之间可以相互修改口令但是请注意,将修改完口令修改成123456后,按以下几种方法登录:sqlplus / as sysdba;sqlplus sys/abcde as sysdba;sqlplus sys/ as sysdba;sqlplus sys as sysdba;都可以登录成功,然后查看当前用户:sql>show user显示user is 'SYS'。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
sys和system用户区别
1 ) 最重要的区别,存储的数据的重要性不同
【sys】 所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。
alter database open/mount/backup alter database open/mount/backup
改变字符集 none
USERNAME SYSDBA SYSOPER
SYS TRUE TRUE
? Sysdba和sysoper两个系统权限区别
normal 、sysdba、 sysoper有什么区别
normal 是普通用户
另外两个,你考察他们所具有的权限就知道了
sysdba拥有最高的系统权限,登陆后是 sys
表已创建。
SQL> select owner from dba_tables where table_name='test';
未选定行 //因为创建表时oracle自动转为大写,所以用小写查的时候是不存在的;
SQL> select owner from dba_tables where table_name='TEST';
OWNER
------------------------------
SYS
? dba和sysdba的区别
dba、sysdba这两个系统角色有什么区别呢
在说明这一点之前我需要说一下oracle服务的创建过程
·创建实例→·启动实例→·创建数据库(system表空间是必须的)
SQL> create user strong identified by strong;
用户已创建。
SQL> conn strong/strong@magick as sysdba;
已连接。
SQL> show user;
USER 为 "SYS"
SQL> create table test(a int);
拥有restricted session(会话限制)权限 拥有restricted session权限
可以让用户作为sys用户连接可以进行一些基本的操作,但不能查看用户数据
登录之后用户是sys 登录之后用户是public
alter database archivelog(归档日志) alter database archivelog
alter database recover(恢复数据库) 只能完全恢复,不能执行不完全恢复
system如果正常登录,它其实就是一个普通的dba用户,但是如果以as sysdba登录,其结果实际上它是作为sys用户登录的,这一点类似Linux里面的sudo的感觉,从登录信息里面我们可以看出来。因此在as sysdba连接数据库后,创建的对象实际上都是生成在sys中的。其他用户也是一样,如果 as sysdba登录,也是作为sys用户登录的,看以下实验:
【sys】用户具有“SYSDBA”或者“SYSOPER”系统权限,登陆em也只能用这两个身份,不能用normal。
以sys用户登陆Oracle,执行select * from V_$PWFILE_USERS;可查询到具有sysdba权限的用户,如:
SQL> select * from V_$PWFILE_USERS;
sys用户拥有dba,sysdba,sysoper等角色或权限,是oracle权限最高的用户。
【system】 用户用于存放次一级的内部数据,如oracle的一些特性或工具的管理信息。system用户拥有普通dba角色权限。
2) 其次的区别,权限的不同。
【system】用户只能用normal身份登陆em,除非你对它授予了sysdba的系统权限或者syspoer系统权限。
create database(创建数据库) None不能创建数据库
drop database(删除数据库) none
create spfile create spfile
系统权限 sysdba sysoper
区别 Startup(启动数据库) startup
Shutdown(关闭数据库) shutdown
sysoper主要用来启动、关闭数据库,sysoper 登陆后用户是 pstem privilege,也称为administrative privilege,拥有例如数据库开启关闭之类一些系统管理级别的权限sysdba和sysoper具体的权限可以看下表:
启动过程
·实例启动→·装载数据库→·打开数据库
sysdba,是管理oracle实例的,它的存在不依赖于整个数据库完全启动,只要实例启动了,他就已经存在,以sysdba身份登陆,装载数据库、打开数据库。只有数据库打开了,或者说整个数据库完全启动后,dba角色才有了存在的基础!
�