Oracle用户角色权限等操作

合集下载

Oracle中常用查询用户、角色、权限等SQL

Oracle中常用查询用户、角色、权限等SQL

Oracle中常⽤查询⽤户、⾓⾊、权限等SQL连带表间的外键关系⼀起删除所有某个⽤户下的所有表:SELECT 'DROP TABLE '||TNAME||' CASCADE CONSTRAINT ;' FROM DBA_OBJECTS FROM DBA_OBJECTS WHEREOWNER='YOUR_USER' AND OBJECT_TYPE='TABLE'然后将选出的结果粘贴到SQLPLUS⾥执⾏1.查看所有⽤户:select * from dba_users;select * from all_users;select * from user_users;2.查看⽤户或⾓⾊系统权限(直接赋值给⽤户或⾓⾊的系统权限):select * from dba_sys_privs;select * from user_sys_privs; (查看当前⽤户所拥有的权限)3.查看⾓⾊(只能查看登陆⽤户拥有的⾓⾊)所包含的权限sql>select * from role_sys_privs;4.查看⽤户对象权限:select * from dba_tab_privs;select * from all_tab_privs;select * from user_tab_privs;5.查看所有⾓⾊: select * from dba_roles;6.查看⽤户或⾓⾊所拥有的⾓⾊:select * from dba_role_privs;select * from user_role_privs;7.查看哪些⽤户有sysdba或sysoper系统权限(查询时需要相应权限)select * from V$PWFILE_USERS8.SqlPlus中查看⼀个⽤户所拥有权限SQL>select * from dba_sys_privs where grantee='username'; 其中的username即⽤户名要⼤写才⾏。

oracle数据库管理人员权限设置及分配表

oracle数据库管理人员权限设置及分配表

一、概述Oracle数据库是当前企业中常用的数据库管理系统之一,而数据库管理人员在企业中扮演着至关重要的角色,他们负责数据库的管理与维护,包括权限设置与分配。

本文将探讨Oracle数据库管理人员权限设置及分配表的相关内容。

二、数据库管理员的权限1. 数据库管理员(DBA)是Oracle数据库中最高权限的用户,具有对数据库进行全面控制的特权。

他们可以创建、修改、删除数据库对象,分配SQL权限,管理数据库用户和角色等。

2. DBA用户的权限通常由系统管理员在安装数据库时创建,或是通过GRANT命令授予。

3. DBA用户可以通过GRANT和REVOKE命令控制其他用户的权限,以及管理数据库对象的安全性。

三、数据库操作员的权限1. 数据库操作员(DBO)是在数据库中具有一定权限的用户,通常负责对数据库进行日常操作。

2. DBO用户可以执行SELECT、INSERT、UPDATE、DELETE等操作,并且可以创建临时表和视图。

3. DBO用户的权限通常由DBA用户通过GRANT命令分配,可以根据需要灵活控制其权限范围。

四、权限设置的最佳实践1. 了解业务需求:在设置数据库用户的权限之前,需要充分了解企业的业务需求,确保每个用户都能够在权限范围内完成工作。

2. 分配最小权限原则:根据最小权限原则,应该仅分配用户所需的最低权限,以降低数据泄露和操作错误的风险。

3. 定期审计权限:定期对数据库用户的权限进行审计,及时发现和修复不合理的权限设置,保障数据库的安全性。

五、权限分配表的编制数据库管理人员需要编制一份权限分配表,清晰地记录每个用户的权限范围,确保权限设置的合理性与一致性。

权限分配表通常包括以下内容:1. 用户名称:列出数据库中所有的用户名称。

2. 权限说明:对用户的权限进行详细说明,包括SELECT、INSERT、UPDATE、DELETE等操作的权限范围。

3. 是否受限:记录是否对用户的权限进行了限制,比如是否禁止用户执行DROP TABLE等危险操作。

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: 查询某个用户所拥有的系统权限。

oracle赋dba权限

oracle赋dba权限

oracle赋dba权限如何给Oracle数据库用户赋予DBA权限Oracle数据库的DBA(Database Administrator)权限是指最高级别的数据库管理权限,具有该权限的用户可以对数据库进行全面的管理和控制。

在某些情况下,给予用户DBA权限是必要的,例如需要进行数据库维护、性能优化或者进行一些故障排除等任务。

下面将详细介绍如何给Oracle数据库用户赋予DBA权限的步骤。

1. 连接到Oracle数据库首先,使用管理员账号连接到Oracle数据库。

这个管理员账号通常是sys 或system用户,拥有sysdba权限。

连接到Oracle数据库的命令可以使用SQL*Plus工具或者命令行界面。

例如,在Windows系统上可以使用以下命令连接到数据库:sqlplus / as sysdba2. 创建新的数据库用户接下来,需要创建一个新的数据库用户来赋予DBA权限。

使用以下SQL 语句创建一个新用户,例如,创建一个名为new_user的用户:SQL> CREATE USER new_user IDENTIFIED BY password;在这里,new_user是新用户的用户名,password是新用户的密码。

3. 授权DBA权限接下来,使用以下SQL命令将DBA角色授予新用户:SQL> GRANT DBA TO new_user;这个命令将DBA角色授予新创建的用户,使其具有DBA权限。

4. 验证DBA权限为了验证新用户是否已成功获得DBA权限,可以先注销当前的数据库连接,然后使用新用户重新连接到数据库。

使用以下命令重新连接到数据库:sqlplus new_user/password as sysdba连接成功后,可以使用以下命令查询用户的权限:SQL> SELECT * FROM session_privs;这个查询将会显示新用户所具有的权限列表,其中应该包含DBA权限。

Oracle创建用户、角色、授权、建表

Oracle创建用户、角色、授权、建表

Oracle创建⽤户、⾓⾊、授权、建表Oracle创建⽤户、⾓⾊、授权、建表Devin01213 2019-05-16 10:21:49 21510 收藏 32分类专栏: Oracle版权oracle数据库的权限系统分为系统权限与对象权限。

系统权限( database system privilege )可以让⽤户执⾏特定的命令集。

例如,create table权限允许⽤户创建表,grant any privilege 权限允许⽤户授予任何系统权限。

对象权限( database object privilege )可以让⽤户能够对各个对象进⾏某些操作。

例如delete权限允许⽤户删除表或视图的⾏,select权限允许⽤户通过select从表、视图、序列(sequences)或快照(snapshots)中查询信息。

每个oracle⽤户都有⼀个名字和⼝令,并拥有⼀些由其创建的表、视图和其他资源。

oracle⾓⾊(role)就是⼀组权限(privilege)(或者是每个⽤户根据其状态和条件所需的访问类型)。

⽤户可以给⾓⾊授予或赋予指定的权限,然后将⾓⾊赋给相应的⽤户。

⼀个⽤户也可以直接给其他⽤户授权。

⼀、登录sqlplus sys/sys as sysdba;1、创建⽤户create user test identified by test;这样就创建了⼀个⽤户名密码都为test的⽤户但这个时候test还是不能登陆成功的,我们需要赋予相应的权限2、赋予create session 的权限grant create session to test;这样test⽤户就能成功登录进去赋予⽤户创建表的权限grant create table to test;赋予相应的权限grant unlimited tablespace to test;这个时候⽤户就拥有了创建表的权限由于表是⽤户test的,相应的他就拥有了对创建的表的增删查改的权限了3、撤销权限revoke create table from test;⼆、删除⽤户drop user ⽤户名;若⽤户拥有对象,则不能直接删除,否则将返回⼀个错误值。

oracle19c之用户、权限、表空间

oracle19c之用户、权限、表空间

oracle19c之⽤户、权限、表空间 ⼀、⽤户相关操作 1、查询⽤户select * from dba_users; --查询全库所有的⽤户select * from all_users; --查询当前⽤户可看到的⽤户select * from user_users; --查询当前登录的⽤户 2、创建⽤户(创建者需要有dba权限,⽤户名必须以c##开头,默认的表空间是users,新⽤户没有任何权限。

)create user c##sl IDENTIFIED BY 123456; 3、删除⽤户drop user c##sl2 cascade; --删除⽤户不会删除其表空间 注意:⽆法删除⽤户C##SL3,报错“[Err] ORA-01940: ⽆法删除当前连接“的⽤户解决⽅法:select username,sid,serial#,paddr from v$session where username='C##SL3';alter system kill session '17,55857'; 4、修改密码alter user c##sl3 identified by 1234; ⼆、权限相关操作 a、系统权限:⽤户在系统层⾯的权限,如CREATE SESSION、SELECT ANY TABLE等不依赖于对象的权限 b、对象权限:⽤户关于某个具体对象的权限,如SELECT、UPDATE、INSERT等依赖于表、视图、存储过程的权限 c、⾓⾊:⼀组权限的集合 注意:PUBLIC⽤户具有的权限,其他⽤户都会有,即修改PUBLIC⽤户的权限,其他⽤户也会对应得改变权限 1、查看权限、⾓⾊select * from user_tab_privs; --当前⽤户具有的对象权限select * from dba_tab_privs WHERE grantee='C##SL' OR grantor='C##SL'; --全部⽤户具有的对象权限,查询C##SL⽤户的select * from user_sys_privs; --当前⽤户具有的系统权限select * from dba_sys_privs WHERE grantee='C##SL'; --全部⽤户具有的系统权限,查询C##SL⽤户的SELECT * FROM user_role_privs; --当前⽤户具有的⾓⾊SELECT * FROM dba_role_privs where grantee='C##SL'; --全部⽤户具有的⾓⾊,查询C##SL⽤户的 注意:上⾯每⼀对查询出的结果应该⼀样,因为全部⽤户中肯定也包含当前⽤户,普通⽤户没有查询全部⽤户⾓⾊、权限表的权限 2、常⽤权限、⾓⾊dba 管理员⾓⾊connect 连接数据库⾓⾊,能修改、删除表及数据,不能创建表resource 能创建表create session 连接数据库权限create table 建表权限unlimited tablespace 操作表空间权限select any table 查询任何表的权限select on c##test.book 查询c##test⽤户的book表的权限 说明: a、⼀般来说,新建的普通⽤户后授予connect和resource⾓⾊就好了、如果是管理员需要再授予dba⾓⾊。

Oracle用户

Oracle用户

Oracle用户SQL> select * from dba_ts_quotas; 查看dba不受配额限制1.预定义角色CONNECT, RESOURCE, DBADBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。

RESOURCE(资源):拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。

CONNECT:拥有Connect权限的用户只可以登录Oracle,SQL> grant dba to scott;SQL> revoke dba from scott;(回收角色)查询用户拥有哪里权限select * from dba_role_privs;(查看哪个用户创建的角色)select * from dba_sys_privs; (查看用户权限)select * from role_sys_privs;(查看角色中的权限)2.实体权限select, update, insert, alter, index, delete, all3.自建立角色SQL> create role role1;给角色赋权限(创建表和创建储存过程)SQL> grant create any table,create procedure to role1;把角色赋予用户SQL> grant role1 to scott;删除角色SQL> drop role role1;Oracle默认可以不用验证就可以登录sysdba数据库我们修改$ORACLE_HOME/network/admin/sqlnet.ora文件修改此语句(NTS)SQLNET.AUTHENTICATION_SERVICES=(none)Oracle的TEST密码文件$ORACLE_HOME/dbs/orapwTEST#orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=123456 force=yOracle索引提升数据库性能最常用最有效的手段针对不同的环境使用不同的索引来提升系统性能认识索引的正面与反面影响灵活的索引管理便于我们在实际工作中解决实际问题分类B树索引普通索引函数索引问题1:表什么情况下创建索引答:提高读的速度问题2:表中什么样的列创建索引答:唯一性高;尽量可能排序;数据量大;位图索引(mysql中没有它)把相同的列值分组存放,锁数据锁一组数据;B树数据锁一条。

用户、权限与角色.ppt

用户、权限与角色.ppt
1、建立新用户
CREATE USER 用户名 IDENTIFIED BY 口令 [DEFAULT TABLESPACE 表空间名] [TEMPORARY TABLESPACE 表空间名] [PASSWORD EXPIRE] [ACCOUNT {LOCK | UNLOCK}]
• 用户名 •口令 •临时表空间 •默认表空间 •密码过期 •账户加锁
库,但可以进行其他一些管理工作,如创建用户、删除用户等。 (3)SCOTT:是一个用于测试网络连接的用户,其口令是tiger; (4)PUBLIC:实质上是一个用户组,数据库中任何一个用户都属
于该组成员。如果要为数据库中每个用户都授予某个权限,只需 把权限授予PUBLIC就可以了。
8.1.1 创建和修改用户
【例8-1】 建立一个USER1用户,密码为USER1。该用户 口令没有到期,账号也没有被锁住,默认表空间为USERS, 在该表空间的配额为10MB。
SQL>CREATE USER USER1
IDENTIFIED BY USER1
DEFAULT TABLESPACE USERS
QUOTA 10M ON USERS
【例8-4】删除USER1用户。 SQL>DROP USER USER1;
注意: 一个当前连接到Oracle服务器的用户是不 能被删除的。
8.1.3 查询用户信息
可通过查询数据字典视图或动态性能视图来获取用户信息。 (1)ALL_USERS:包含数据库所有用户的用户名、用户ID和
用户创建时间。 (2)DBA_USERS:包含数据库所有用户的详细信息。 (3)USER_USERS:包含当前用户的详细信息。 (4)V$SESSION:包含用户会话信息。 (5)V$OPEN_CURSOR:包含用户执行的SQL语句信息。 普通用户只能查询USER_USERS数据字典,只有拥有DBA

oracle赋权方法

oracle赋权方法

Oracle赋权方法1. 背景介绍Oracle是一种关系型数据库管理系统,用于存储和管理大量的结构化数据。

在Oracle数据库中,为了保证数据的安全性和完整性,需要对用户进行赋权。

赋权是指将特定的权限授予用户或用户组,以便他们可以执行特定的操作,如查询、插入、更新和删除数据,创建和修改表结构,以及执行其他管理任务。

本文将介绍Oracle数据库中常用的赋权方法,包括用户赋权、角色赋权和对象赋权。

2. 用户赋权用户是指在Oracle数据库中创建的具有特定权限和资源的实体。

用户赋权是指为用户分配和管理权限,使其可以执行特定的操作。

2.1 创建用户在赋权之前,首先需要创建用户。

可以使用以下SQL语句创建用户:CREATE USER username IDENTIFIED BY password;其中,username是要创建的用户名,password是用户的密码。

2.2 赋予权限赋予权限是通过将角色授予用户来实现的。

角色是一组权限的集合,可以简化权限管理和维护。

可以使用以下SQL语句将角色授予用户:GRANT role_name TO username;其中,role_name是要授予的角色名,username是要赋权的用户名。

2.3 撤销权限如果需要撤销用户的权限,可以使用以下SQL语句:REVOKE role_name FROM username;其中,role_name是要撤销的角色名,username是要撤销权限的用户名。

3. 角色赋权角色是一组权限的集合,可以将角色授予用户,以便他们可以执行特定的操作。

3.1 创建角色可以使用以下SQL语句创建角色:CREATE ROLE role_name;其中,role_name是要创建的角色名。

3.2 赋予权限可以使用以下SQL语句将权限授予角色:GRANT privilege_name TO role_name;其中,privilege_name是要授予的权限名,role_name是要赋权的角色名。

oracle授权机制

oracle授权机制

oracle授权机制Oracle授权机制是指在Oracle数据库中对用户和角色进行授权和权限管理的机制。

通过授权,可以限制用户对数据库对象的访问和操作,保证数据的安全性和完整性。

在Oracle数据库中,授权是通过使用GRANT和REVOKE语句来实现的。

GRANT语句用于授权,REVOKE语句用于回收权限。

授权可以分为系统级授权和对象级授权两种。

系统级授权是指对用户和角色进行授权,控制其对整个数据库实例的访问权限。

通过GRANT语句可以授予用户和角色系统级权限,如CREATE SESSION、CONNECT、CREATE TABLESPACE等。

系统级权限授权给用户后,用户可以连接到数据库实例并执行相应的操作。

对象级授权是指对数据库对象(如表、视图、存储过程等)进行授权,控制用户对这些对象的访问和操作权限。

通过GRANT语句可以授予用户对特定对象的SELECT、INSERT、UPDATE、DELETE 等权限。

对象级授权可以细粒度地控制用户对数据库对象的操作,提高数据的安全性。

在进行授权时,可以指定授权的粒度和范围。

粒度可以是对象级、行级或列级。

对象级授权是指对整个对象进行授权,行级授权是指对对象中的某些行进行授权,列级授权是指对对象中的某些列进行授权。

范围可以是用户级、角色级或全局级。

用户级授权是指将权限授予特定用户,角色级授权是指将权限授予角色,全局级授权是指将权限授予所有用户。

除了GRANT和REVOKE语句外,Oracle还提供了其他一些相关的语句和视图来管理和查询授权信息。

例如,可以使用ALTER USER语句修改用户的权限,使用GRANT ROLE语句将角色授予用户,使用ROLE_TAB_PRIVS视图查看角色的权限等。

在实际应用中,需要根据业务需求和安全要求来设计和管理授权机制。

合理的授权设计可以保证数据库的安全性和性能。

一般来说,应该遵循以下几个原则:1.最小权限原则:即给用户和角色授予最小必需的权限,避免赋予过多的权限,降低风险。

Oracle数据库---用户、角色与权限

Oracle数据库---用户、角色与权限

1.在Oracle数据库中,存在着视图dba_users,该视图存储了所有用户的基本信息,我们可以通过视图内容来查看。

2.对于开发人员来说,并不会经常使用系统用户登陆数据库,因为系统用户的权限范围较大,如果出现失误,可能对数据库造成较大伤害。

利用系统用户创建新的用户:3.系统用户----system和sysSys为数据库管理员,是数据库中权限最高的用户,可以进行任意操作而不受限制System是数据库操作员,权限仅次于sys用户。

4.查看权限我们发现,新建用户zhulei没有任何权限,所以我们是没法登陆的。

5.分配权限:Grant 权限名to 用户名这样我们就可以登陆了。

虽然可以登陆,但几乎不能做任何事情,比如创建表,就需要分配给它创建表的权限。

grant create table to zhulei;6收回权限Revoke 权限名from 用户名这个时候,用户zhulei又无法登陆了。

上面是系统权限,还有对象权限对象权限就是把对对象的操作权限进行非配Grant 权限名on 对象名to 用户代码:--管理员身份登录,创建一个姓张得用户,初始密码为123,默认表空间为users。

SQL>create user zhangidentified by 123default tablespace users;--查询zhang用户的权限,这里为空,说明没有任何操作权限。

SQL>select * from dba_sys_privswhere lower(grantee)='zhang';--管理员授权zhang用户有登录的权利SQL>grant create session to zhang;。

Oracle 用户权限管理方法

Oracle 用户权限管理方法

Oracle 用户权限管理方法Oracle 用户权限管理方法,对于想要学习oracle安全的朋友,是个入门级的资料。

sys;//系统管理员,拥有最高权限system;//本地管理员,次高权限scott;//普通用户,密码默认为tiger,默认未解锁sys;//系统管理员,拥有最高权限system;//本地管理员,次高权限scott;//普通用户,密码默认为tiger,默认未解锁二、登陆sqlplus / as sysdba;//登陆sys帐户sqlplus sys as sysdba;//同上sqlplus scott/tiger;//登陆普通用户scottsqlplus / as sysdba;//登陆sys帐户sqlplus sys as sysdba;//同上sqlplus scott/tiger;//登陆普通用户scott三、管理用户create user zhangsan;//在管理员帐户下,创建用户zhangsanalert user scott identified by tiger;//修改密码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)/*管理员授权*/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任意表的权限/*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基本语法同grant,关键字为revoke六、查看权限select * from user_sys_privs;//查看当前用户所有权限select * from user_tab_privs;//查看所用用户对表的权限select * from user_sys_privs;//查看当前用户所有权限select * from user_tab_privs;//查看所用用户对表的权限七、操作表的用户的表/*需要在表名前加上用户名,如下*/select * from zhangsan.tablename/*需要在表名前加上用户名,如下*/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类似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的权限授予myrolegrant myrole to zhangsan;//授予zhangsan用户myrole的角色drop role myrole;删除角色/*但是有些权限是不能授予给角色的,比如unlimited tablespace和any关键字*/。

Oracle用户及权限管理

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内置角色connect与resource的权限

[指南]Oracle内置角色connect与resource的权限

Oracle内置角色connect与resource的权限.txt懂得放手的人找到轻松,懂得遗忘的人找到自由,懂得关怀的人找到幸福!女人的聪明在于能欣赏男人的聪明。

生活是灯,工作是油,若要灯亮,就要加油!相爱时,飞到天边都觉得踏实,因为有你的牵挂;分手后,坐在家里都觉得失重,因为没有了方向。

Oracle内置角色connect与resource的权限首先用一个命令赋予user用户connect角色和resource角色:grant connect,resource to user;运行成功后用户包括的权限:CONNECT角色: --是授予最终用户的典型权利,最基本的ALTER SESSION --修改会话CREATE CLUSTER --建立聚簇CREATE DATABASE LINK --建立数据库链接CREATE SEQUENCE --建立序列CREATE SESSION --建立会话CREATE SYNONYM --建立同义词CREATE VIEW --建立视图RESOURCE 角色: --是授予开发人员的CREATE CLUSTER --建立聚簇CREATE PROCEDURE --建立过程CREATE SEQUENCE --建立序列CREATE TABLE --建表CREATE TRIGGER --建立触发器CREATE TYPE --建立类型从dba_sys_privs里可以查到(注意这里必须以DBA角色登录):select grantee,privilege from dba_sys_privswhere grantee='RESOURCE' order by privilege;GRANTEE PRIVILEGE------------ ----------------------RESOURCE CREATE CLUSTERRESOURCE CREATE INDEXTYPERESOURCE CREATE OPERATORRESOURCE CREATE PROCEDURERESOURCE CREATE SEQUENCERESOURCE CREATE TABLERESOURCE CREATE TRIGGERRESOURCE CREATE TYPE=================================================一、何为角色?我在前面的篇幅中说明权限和用户。

OracleDB关于CONNECT、RESOURCE和DBA角色权限

OracleDB关于CONNECT、RESOURCE和DBA角色权限

OracleDB关于CONNECT、RESOURCE和DBA⾓⾊权限授予⾓⾊的语法:grant<object/system privilege> to<role name>;⼀般情况下,在新建数据库⽤户后,都会习惯性的给⽤户授权CONNECT⾓⾊和RESOURCE⾓⾊:GRANT connect,resource,dba TO ⽤户;1、CONNECT ⾓⾊,拥有Connect权限的⽤户只可以登录ORACLE(仅具有创建SESSION的权限),不可以创建实体,不可以创建结构。

2、RESOURCE ⾓⾊,是授予开发⼈员的。

拥有Resource权限的⽤户只可以创建实体,不可以创建数据库结构。

同时,当把ORACLE resource⾓⾊授予⼀个user的时候,不但会授予ORACLE resource⾓⾊本⾝的权限,⽽且还有unlimited tablespace权限,但是,当把resource授予⼀个role时,就不会授予unlimited tablespace权限。

Create trigger--建⽴触发器;Create sequence—建⽴序列;Create type--建⽴类型;Create procedure--建⽴过程;Create cluster--建⽴聚簇;Create operator--创建操作者;Create indextype--创建索引类型;Create table--建表。

3、DBA⾓⾊,--是授予数据库维护⼈员的。

拥有全部特权,是系统最⾼权限,只有DBA才可以创建数据库结构。

从dba_sys_privs查看权限grantee privilege:SQL>Select grantee,privilege from dba_sys_privsWhere grantee= 'DBA'Order by privilege;注意:10g 开始,connect⾥⾯只有 create session权限了;resource权限⾥没有 create view;还需要重点说明下的是 unlimited tablespace(授予了resource权限给user, user1 其实⾃动有了unlimited tablespace权限)4、Unlimited tablespace的特点:1、系统权限unlimited tablespace不能被授予role,只能被授予⽤户。

oracle 数据库授权规则

oracle 数据库授权规则

一、概述在现代信息技术领域,数据库扮演着至关重要的角色。

而Oracle数据库作为全球最为著名的关系型数据库管理系统之一,在企业级应用系统中被广泛使用。

而在管理Oracle数据库时,数据库授权是一项十分重要的工作。

本文将从Oracle数据库的授权规则出发,系统地介绍Oracle数据库授权的相关内容。

二、Oracle数据库授权的基本概念1. Oracle数据库授权的定义在数据库管理中,授权是指授权用户或角色访问数据库中对象的操作的过程。

授权规则则是指相应的授权原则和规定。

Oracle数据库授权即是指允许用户或角色对数据库对象进行访问和操作的权限规定。

2. Oracle数据库授权的类型Oracle数据库授权可以分为系统级授权和对象级授权两种类型。

系统级授权是对数据库中所有对象的权限进行授权,而对象级授权是对具体某个对象(如表、视图等)的权限进行授权。

三、Oracle数据库授权规则的具体内容1. 系统级授权规则(1)系统管理员权限授权:在Oracle数据库中,系统管理员(通常是sys用户)具有最高的权限,可以对所有对象进行操作。

在授权时,应谨慎授予系统管理员权限,以免造成数据库安全风险。

(2)特定角色授权:在Oracle数据库中,有一些特定的角色(如DBA角色、CONNECT角色等)拥有特定的权限。

在授权时,需要根据具体需求,合理授予相应的角色。

2. 对象级授权规则(1)表级权限授权:在Oracle数据库中,对表的权限授权是非常常见的操作。

授权对象可以是用户或者角色,授权的操作可以包括SELECT、INSERT、UPDATE、DELETE等。

(2)视图级权限授权:对视图的权限授权也同样重要,可以控制用户或角色对视图的查询权限。

(3)存储过程权限授权:对存储过程的权限授权可以控制哪些用户或角色可以执行特定的存储过程。

3. 其他规则(1)跨数据库授权:在复杂的系统环境中,可能存在跨多个Oracle数据库的授权问题。

Oracle用户、授权、角色管理

Oracle用户、授权、角色管理

Oracle⽤户、授权、⾓⾊管理 每个Oracle⽤户都有⼀个名字和⼝令,并拥有⼀些由其创建的表、视图和其他资源。

Oracle⾓⾊(role)就是⼀组权限(privilege)(或者是每个⽤户根据其状态和条件所需的访问类型)。

⽤户可以给⾓⾊授予或赋予指定的权限,然后将⾓⾊赋给相应的⽤户。

⼀个⽤户也可以直接给其他⽤户授权。

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/manager SQL> 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中新建用户和赋予权限

oracle中新建⽤户和赋予权限1.新建个⽤户create user xxxxx(⽤户名) identified by "密码"alert user ⽤户名 identified by “新密码” --修改⽤户密码因为新建的⽤户和默认的⽤户是锁住的,没有权限。

所以新建⽤户后要给⽤户赋予权限grant dba to ⽤户名 --给⽤户赋予所有权限,connect是赋予连接数据库的权限,resource 是赋予⽤户只可以创建实体但是没有创建数据结构的权限。

grant create session to ⽤户名 --这个是给⽤户赋予登录的权限。

grant create table to ⽤户名 --给⽤户赋予表操作的权限grant unlimited tablespace to ⽤户名 --给⽤户赋予表空间操作的权限grant select any table to ⽤户名 --给该⽤户赋予访问任务表的权限同理可以赋予update 和delete 的grant select on srapp_hz_zhpt_yl.jggl to srapp_hz_zhpt_ylcs --这⾥是给srapp_hz_zhpt_ylcs⽤户赋予selectsrapp_hz_zhpt_yl⽤户的jggl表的查询的权限。

同理可以有alter,drop,insert等权限。

-----------------------------注意这个语句在没有访问另⼀个⽤户的权限情况下这个语句要在另⼀个⽤户登录情况下执⾏,这样才能⽣效。

-------------撤销权限基本语法同grant,关键字为revoke 如: revoke create tabel to ⽤户名就是取消这个⽤户的对表操作的权限。

-----------查看权限select * from user_sys_privs;//查看当前⽤户所有权限select * from user_tab_privs;//查看所⽤⽤户对表的权限-----------⾓⾊⾓⾊即权限的集合,可以把⼀个⾓⾊授予给⽤户,管理⾓⾊的权限⽐较简单,可以在⼀个⽤户下创建多个⾓⾊,⽤户只需要添加⾓⾊就可以管理权限了,便于⽤户管理权限。

Oracle数据库的用户和权限管理

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的安全管理方法。

二、实验主要内容(1) 概要文件的建立、修改、查看、删除操作。

(2) 用户的建立、修改、查看、删除操作。

(3) 权限的建立、修改、查看、删除操作。

(4) 角色的建立、修改、查看、删除操作。

三、实验仪器设备在局域网环境下,有一台服务器和若干台客户机。

服务器成功安装Oracle 11g数据库服务器(企业版),客户机成功安装Oracle 11g客户端软件,网络服务配置正确,数据库和客户端正常工作。

四、实验步骤1创建概要文件。

①利用企业管理器创建概要文件“ygbx+学号_pro”,要求在此概要文件中CPU/会话为1000,读取数/会话为2000,登录失败次数为3,锁定天数为10。

②利用SQL*Plus或PL/SQL Developer,创建概要文件“ygbx+学号_pro_sql”,其结构与“ygbx+学号_pro”一致。

2 查看概要文件。

②利用企业管理器查看概要文件“ygbx+学号_pro”的信息。

②利用SQL*Plus或PL/SQL Developer,从DBA_PROFILES数据字典中查看“ygbx+学号_pro_sql”概要文件的资源名称和资源值等信息。

③利用SQL*Plus或PL/SQL Developer,从查看“ygbx+学号_pro_sql”概要文件中锁定天数的值。

3修改概要文件。

②利用企业管理器,修改“ygbx+学号_pro”概要文件,将CPU/会话改为4000,连接时间为60。

②利用SQL*Plus或PL/SQL Developer,修改“ygbx+学号_pro_sql”概要文件,将并行会话设为20,读取数/会话设为DEFAULT。

4创建用户。

①利用企业管理器,创建“ygbxuser+学号”用户,密码为“user+学号”,默认表空间为“ygbx_tbs”。

②利用SQL*Plus或PL/SQL Developer,创建“ygbxuser+学号_sql”用户,密码为“user+学号+sql”,该用户处于锁状态。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

oracle 赋予权限转发评论02月21日13:00最基础的sqlplus username/password@[sid] 连接数据库sqlplus username/password as sysdba 以管理员连接数据库管理员连接后创建用户sqlplus system/manager@demo as sysdba create user abc identified by abc ; 创建用户abc密码为abcgrant all privileges to abc; 给abc用户赋予所有的权限给自己留个备份以备不时之需oracle grant授权语句--select * from dba_users; 查询数据库中的所有用户--alter user USERNAME account lock; 锁住用户--alter user USERNAME account unlock; 给用户解锁--create user USERNAME identified by USERPASS; 建立用户一般创建用户后需要授予链接数据库权限grant connect,resource to USERNAME;--grant create tablespace to USERNAME; 授权创建表空间--grant SELECT on TABLENAME to USERNAME; 授权查询授权其他动作格式相同如果要把所有表的查询权限分配给用户可以用这样的grant select any table to USERNAME;--grant execute on procedure1 to xujin 授权存储过程--grant UPDATE on TABLENAME to USERNAME with grant option; 授权更新权限转移给xujin用户,许进用户可以继续授权;--收回权限--revoke select on table1 from xujin1; 收回查询select表的权限;--revoke all on table1 from xujin;/*grant connect to xujin;revoke connect from xujingrant select on xezf.cfg_alarm to xujin;revoke select on xezf.cfg_alarm from xujin;*/--select table_name,privilege from dba_tab_privs where grantee='xujin' 查询一个用户拥有的对象权限--select * from dba_sys_privs where grantee='xujin' 查询一个用户拥有的系统权限--select * from session_privs --当钱会话有效的系统权限--角色--create role xujin1;--建立xujin1角色--grant insert on xezf.cfg_alarm to xujin1; 将插入表的信息--revoke insert on xezf.cfg_alarm from xujin1; 收回xujin1角色的权限--grant xujin1 to xujin ; 将角色的权限授权给xujin;-- create role xujin2;--grant xujin1 to xujin2; 将角色xujin1授权给xujin2;--alter user xujin default xujin1,xujin2; 修改用户默认角色-- DROP ROLE xujin1;删除角色1;--select * from role_sys_privs where role=xujin1;--查看许进1角色下有什么系统权限;--select granted_role,admin_option from role_role_privs where role='xujin2'--查看xujin1角色下面有什么角色权限--select * from role_sys_privs where role='xujin2'--select table_name,privilege from role_tab_privs where role='xujin1'--select * from dba_role_privs where grantee='xujin' --查看用户下面有多少个角色;======================详解=========================GRANT名称GRANT -- 赋予访问权限语法GRANT { { SELECT | INSERT | UPDATE | DELETE | REFERENCES | TRIGGER } [,...] | ALL [ PRIVILEGES ] }ON [ TABLE ] tablename [, ...]TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]GRANT { { USAGE | SELECT | UPDATE }[,...] | ALL [ PRIVILEGES ] }ON SEQUENCE sequencename [, ...]TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]GRANT { { CREATE | CONNECT | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] } ON DATABASE dbname [, ...]TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]GRANT { EXECUTE | ALL [ PRIVILEGES ] }ON FUNCTION funcname ( [ [ argmode ] [ argname ] argtype [, ...] ] ) [, ...]TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]GRANT { USAGE | ALL [ PRIVILEGES ] }ON LANGUAGE langname [, ...]TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]GRANT { { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] }ON SCHEMA schemaname [, ...]TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]GRANT { CREATE | ALL [ PRIVILEGES ] }ON TABLESPACE tablespacename [, ...]TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]GRANT role [, ...] TO username [, ...] [ WITH ADMIN OPTION ]描述GRANT命令有两个基本变种:一个变种是给数据库对象(表、视图、序列、数据库、函数、过程语言、模式、表空间)赋予权限;一个变种是赋予一个角色中的成员关系。

这些变种在很多方面都非常类似,但是它们之间的区别也有足够理由来分开描述。

到了PostgreSQL 8.1,用户和组的概念已经统一成一类对象,叫角色。

因此就没有必要使用关键字GROUP来标识一个授予者是用户还是组。

GROUP仍然可以在命令中使用,但只是一个多余的词而已。

在数据库对象上的GRANT这个变种的GRANT命令在数据库对象上给一个或多个角色授予特定的权限。

这些权限追加到已经授予的权限上。

关键字PUBLIC表示该权限要赋予所有角色,包括那些以后可能创建的用户。

PUBLIC可以看做是一个隐含定义好的组,它总是包括所有角色。

任何特定的角色都将拥有直接赋予他/它的权限,加上他/它所处的任何组,以及再加上赋予PUBLIC的权限的总和。

如果声明了WITH GRANT OPTION,那么权限的接收者也可以将此权限赋予他人,否则就不能授权他人。

这个选项不能赋予PUBLIC对于对象的所有者(通常就是创建者)而言,没有什么权限需要赋予,因为所有者缺省就持有所有权限。

不过,所有者出于安全考虑可以选择废弃一些他自己的权限。

删除一个对象的权力,或者是任意修改它的权力都不是可赋予的权限;它是创建者固有的,并且不能赋予或撤销。

所有者也隐含地拥有该对象的所有授权选项。

根据对象的不同,初始的缺省权限包括一些赋予PUBLIC的权限:对于表、模式、表空间没有公开访问权限;对于数据库有CONNECT权限和创建TEMP表的权限;对于函数有EXECUTE权限;对于语言有USAGE权限。

对象所有者当然可以撤回这些权限。

出于最大安全性考虑,在创建该对象的同一个事务中发出REVOKE就不会打开给别的用户使用该对象的窗口。

可能的权限有:SELECT允许对声明的表、试图、序列SELECT任意字段。

还允许做COPY TO 的源。

对于序列而言,这个权限还允许使用de>currvalde> 函数。

INSERT允许向声明的表INSERT一个新行。

同时还允许做COPY FROMUPDATE允许对声明的表中任意字段做UPDATE。

SELECT ... FOR UPDATE和SELECT ... FOR SHARE也要求这个权限(除了SELECT权限之外)。

比如,这个权限允许使用de>nextvalde> 和de>setvalde> 函数。

DELETE允许从声明的表中DELETE行REFERENCES要创建一个外键约束,你必须在参考表和被参考表上都拥有这个权限。

TRIGGER允许在声明表上创建触发器(参见CREATE TRIGGER语句)CREATE对于数据库,允许在该数据库里创建新的模式。

相关文档
最新文档