如何查看oracle用户具有的权限和角色
- 格式:doc
- 大小:27.00 KB
- 文档页数:2
Oracle数据库中查看用户名的方法1.引言在Or ac le数据库中,用户名是用于标识数据库用户身份的重要信息。
通过正确的方法查看用户名,可以帮助管理员或开发人员更有效地管理和维护数据库。
本文将介绍几种常用的方法来查看O ra cl e数据库中的用户名。
2.使用系统视图查看用户名O r ac le数据库提供了一些系统视图,可以方便地查看用户信息。
以下是几个常用的系统视图及其用途:2.1.D B A_U S E R S视图D B A_US ER S视图包含了数据库中所有用户的详细信息。
使用该视图可以查看用户名、用户类型、是否临时用户等信息。
S E LE CT us er na me,us e r_id,a cc ou nt_st a tu sF R OM db a_us er s;2.2.A L L_U S E R S视图A L L_US ER S视图包含了当前用户有访问权限的所有用户信息。
使用该视图可以查看用户名、用户类型等信息。
S E LE CT us er na me,us e r_idF R OM al l_us er s;2.3.U S E R_U S E R S视图U S ER_U SE RS视图包含了当前用户的详细信息。
使用该视图可以查看当前用户的用户名、用户类型等信息。
S E LE CT us er na me,us e r_idF R OM us er_u se rs;3.使用SQ L语句查看用户名除了使用系统视图外,还可以通过SQ L语句直接查询数据库来查看用户名。
以下是几个基本的SQ L语句示例:3.1.查询所有用户名S E LE CT DI ST IN CT use r na meF R OM al l_us er s;3.2.查询当前用户的用户名S E LE CT us erF R OM du al;3.3.查询指定用户的用户名S E LE CT us er na meF R OM db a_us er sW H ER Eu se rn am e='指定用户名';4.使用PL/SQL块查看用户名除了使用SQ L语句外,还可以使用P L/S Q L块来查看用户名。
如何查看oracle⽤户具有的权限和⾓⾊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_USERS⽐如我要查看⽤户 wzsb的拥有的权限:SQL>select*from dba_sys_privs where grantee='WZSB';GRANTEE PRIVILEGE ADMIN_OPTION------------------------------ ---------------------------------------- ------------WZSB CREATE TRIGGER NOWZSB UNLIMITED TABLESPACE NO⽐如我要查看⽤户 wzsb的拥有的⾓⾊:SQL>select*from dba_role_privs where grantee='WZSB';GRANTEE GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE------------------------------ ------------------------------ ------------ ------------WZSB DBA NO YES查看⼀个⽤户所有的权限及⾓⾊select privilege from dba_sys_privs where grantee='WZSB'unionselect privilege from dba_sys_privs where grantee in(select granted_role from dba_role_privs where grantee='WZSB' );。
oracle赋权方法Oracle是一种关系型数据库管理系统,它提供了一种灵活且安全的赋权机制,可以控制用户对数据库对象的访问权限。
本文将介绍Oracle中常用的赋权方法。
1. 创建用户和角色:在Oracle中,可以使用CREATE USER语句创建用户,并使用CREATE ROLE语句创建角色。
用户可以拥有角色,而角色可以拥有权限。
创建用户和角色的语法如下:```CREATE USER username IDENTIFIED BY password; CREATE ROLE role;```2. 授权角色权限:可以使用GRANT语句将权限授予角色。
例如,将SELECT权限授予角色read_role:```GRANT SELECT ON table_name TO read_role;```3. 授权用户角色:可以使用GRANT语句将角色授予用户。
例如,将read_role角色授予用户username:```GRANT read_role TO username;```4. 授予用户直接权限:可以使用GRANT语句将权限直接授予用户。
例如,将SELECT权限直接授予用户username:```GRANT SELECT ON table_name TO username;```5. 撤销角色权限:可以使用REVOKE语句撤销角色的权限。
例如,撤销read_role角色的SELECT权限:```REVOKE SELECT ON table_name FROM read_role;```6. 撤销用户角色:可以使用REVOKE语句撤销用户的角色。
例如,撤销用户username的read_role角色:```REVOKE read_role FROM username;```7. 撤销用户直接权限:可以使用REVOKE语句撤销用户的直接权限。
例如,撤销用户username的SELECT权限:```REVOKE SELECT ON table_name FROM username;```8. 查看用户权限:可以使用SELECT语句查询用户拥有的权限。
ORACLE的CONNECT和RESOURCE⾓⾊权限最近在处理数据库的⽤户权限问题,之前惯性思维,觉得给⽤户授权RESOURCE权限之后,⽤户的⼀般权限都会有,等到发现⽤户有RESOURCE⾓⾊,却没有创建视图的权限之后,才发现这部分还是⼀知半解啊,所以此处整理了⼀下相关的CONNECT⾓⾊和RESOURCE⾓⾊的内容。
⼀般情况下,在新建数据库⽤户后,都会习惯性的给⽤户授权CONNECT⾓⾊和RESOURCE⾓⾊:GRANT connect,resource TO⽤户;但是拥有这两个⾓⾊的⽤户都拥有什么权限呢?可以使⽤如下语句查看⼀下:SELECT*FROM dba_sys_privs WHERE grantee IN ('RESOURCE', 'CONNECT') ORDER BY1;从查询结果可以看到:CONNECT⾓⾊:仅具有创建SESSION的权限RESOURCE⾓⾊:仅具有创建CLUSTER,INDEXTYPE,OPERATOR,PROCEDEURE,SEQUENCE,TABLE,TRIGGER,TYPE的权限。
同时,当把ORACLE resource⾓⾊授予⼀个user的时候,不但会授予ORACLE resource⾓⾊本⾝的权限,⽽且还有unlimited tablespace权限,但是,当把resource授予⼀个role时,就不会授予unlimited tablespace权限。
确实没有创建视图的权限,由此看来如果需要创建视图权限,只能单独授权:GRANT CREATE VIEW TO⽤户;那么,⼀个⽤户,如果查看他拥有什么权限呢?⽅法⼀:PLSQL Developer⼯具在PLSQL Developer中可以很⽅便的查看⽤户的各种类型权限(包括对象权限,⾓⾊权限,系统权限),如下图:⽅法⼆:SQL查询语句查询对象权限:SELECT*FROM dba_tab_privs a WHERE a.grantee ='⽤户名';查询⾓⾊权限:SELECT*FROM dba_role_privs a WHERE a.GRANTEE ='⽤户名';查询系统权限:SELECT*FROM dba_sys_privs a WHERE a.GRANTEE ='⽤户名';。
oracle数据库查询用户语句如何查询Oracle数据库中的用户。
想要查询Oracle数据库中的用户,我们可以使用一系列的SQL语句和命令来完成这项任务。
本文将详细介绍如何使用不同的方法查询Oracle数据库中的用户。
首先,我们需要登录到Oracle数据库。
可以使用命令行工具,如SQLPlus 或者SQL Developer登录。
一、使用SQL语句查询所有用户我们可以使用以下SQL语句来查询数据库中的所有用户:SELECT username FROM all_users;这条语句将返回数据库中所有用户的用户名。
二、使用系统视图查询用户Oracle数据库提供了许多系统视图,我们可以使用它们来查询用户信息。
以下是一些常用的系统视图及其用途:1. DBA_USERS:此视图包含了所有用户的信息,包括用户名、创建日期、过期日期等。
SELECT username, created, expiry_date FROM dba_users;这条语句将返回所有用户的用户名、创建日期和过期日期。
2. ALL_USERS:该视图包含了数据库中所有可访问的用户的信息。
SELECT username, created, expiry_date FROM all_users;这条语句将返回所有可访问的用户的用户名、创建日期和过期日期。
3. USER_USERS:这个视图包含了当前用户的信息。
SELECT username, created, expiry_date FROM user_users;这条语句将返回当前用户的用户名、创建日期和过期日期。
三、查询特定用户信息如果我们想查询特定用户的信息,可以使用以下SQL语句:SELECT username, created, expiry_date FROM dba_users WHEREusername = 'username';这条语句将返回指定用户名的用户的用户名、创建日期和过期日期。
oracle 创建create user 及授权grant 查看登陆的用户:以下都可以:show user;select sys_context('userenv','session_user') from dual;select user from dual;查看所有登录的用户必须为DBA 用户:select username from v$session;sys、system等DBA 用户查看其他用户(test)中的对象(表):SQL> select * from test.student;创建一个普通用户都把该用户用起来的流程:1、创建用户SQL>create user test indentified by test;这样就创建了一个用户名密码都为test的用户但这个时候test还是不能登陆成功的,我们需要赋予相应的权限2、赋予create session的权限SQL>grant create session to test;这样test用户就能成功登陆进去但是此时用户还是不能创建表我们需要赋予用户创建表的权限:SQL>grant create table to test;但是用户此时还不能创建表因为需要有使用表空间的权限(相当于用户有了进房间的钥匙但是没有进大门的钥匙。
)所以也应该赋予相应的权限SQL>grant unlimited tablespace to test;这个时候用户就拥有了创建表的权限由于表是用户test的相应的他就拥有了对创建的表的增删查改的权限了3、查看用户拥有什么权限可以通过查询一个系统的视图(数字字典)SQL>select * from user_sys_privs;这样就可以知道当前用户的权限4、撤销权限SQL> revoke create table from test;-----------------------------一些常用视图的区分dba_tables dba_all_tables user_tables user_all_tables all_tables all_all_tables当前用户所属的所有表(注意大写)SQL> select tablespace_name,table_name from user_all_tables where table_name='STUDENT'; SQL> select table_name,tablespace_name from user_tables where table_name='STUDENT'; TABLE_NAME TABLESPACE_NAME------------------------------ ------------------------------STUDENT USERSsys 要查看dba_all_tables,ALL_ALL_TABLES才能查看到test 用户的表。
Oracle命令:授权-收回权限-⾓⾊oracle grant不论授予何种权限,每条授权(grant)语句总是由三部分组成:1) 接受者部分是准备获得权限的⼀个或多个⽤户的列表。
2)关键字权限部分由grant后跟⼀种或多种权限组成。
如果在同⼀条grant语句中有多个权限,权限之间⽤逗号分隔。
3) 表名部分由关键字o n起头并列出准备在其上授权的表。
看下⾯的详细介绍,主要是介绍如何把添加、删除、修改、查询四种权限授予⽤户,如下:⼀、insertinsert权限允许在其他⽤户的表中建⽴⾏。
语句grant insert on sample_a to public;允许所有⽤户在sample_a中建⽴新的⾏。
Oracle允许在单条grant语句中授多个权限,SQL语句grant insert,select on sample_a to public;等价于两个语句:grant select on sample_a to public;语句和grant insert on sample_a to ublic;语句。
⼆、updateupdate权限允许其他⽤户修改⾮⾃⼰表中的数据。
语句grant update on sample_a teplownd;允许⽤户teplownd修改表sample_a中的信息。
三、selectselect权限允许⽤户查看其他⽤户表中的内容。
语句grant select on sample_3 to public;将允许所有⽤户浏览表sample_3中的内容,⽽语句grant select on sample_3 to opsabbeyms;则只允许两个⽤户查看表sample_3中的内容。
注意,当多个⽤户接受授权时,⽤户名之间要⽤逗号分隔。
提⽰以public为授权对象时,所有数据库⽤户都获得指定的权限。
如果⽤户的数据库有15000个⽤户,则单独授权就需要15000次(每个⽤户⼀次),⽽授权给public,⼀次即可。
本文由我司收集整编,推荐下载,如有疑问,请与我司联系oracle权限和同义词笔记2012/09/25 4671 1.查看当前用户所拥有的系统权限 select * from session_privs; 2.查看数据库内的所有角色select * from dba_roles; 4.查看当前用户所拥有的角色select * from session_roles; 5.查看角色的嵌套关系和所授予的用户select * from dba_role_privs order by 1; 6.其他查看角色和权限的命令select * from role_sys_privs; select * from dba_sys_privs; 7.表级对象权限select * from user_tab_privs_made; select * from user_tab_privs_recd; 8.列上的对象权限select * from user_col_privs_made; select * from user_col_privs_recd; 9.比较connect和resoucr角色的权限差别select grantee,privilege from dba_sys_privs where grantee=‘RESOURCE’ OR GRANTEE LIKE ‘CONNECT’ 10.查看oracle的版本select version from v$instance; select * from role_role_privs where role=‘CONNECT’ CONNECT角色在10g以后就只有create session的权限了,以前其他版本的权限都被取消了。
当RESOURCE角色被授予一个用户后,该用户自动拥有了unlimited tablespace的系统权限。
select * from role_role_privs select * from role_sys_privs; select * from role_tab_privs; select * from role_wm_privs; 查看某个role赋给了哪些user或role:select * from DBA_ROLE_PRIVS where GRANTee=‘ifm30’; select * from dba_users; grant RESOURCE to TYF with admin option commit 创建同义词:create public synonym table_name for user.table_name;2.删除同义词:drop public synonym table_name;3.查看所有同义词:select * from dba_synonyms Oracle同义词的作用1) 多用户协同开发中,可以屏蔽对象的名字及其持有者。
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=================================================一、何为角色?我在前面的篇幅中说明权限和用户。
Oracle数据库管理与优化考试(答案见尾页)一、选择题1. Oracle数据库中最小的不可分割的数据单位是?A. 数据块B. 表空间C. 区间D. 监控区2. 在Oracle数据库中,如何查看当前系统的CPU使用率?A. SELECT * FROM v$sysstat WHERE name = 'cpu_usage';B. SELECT * FROM v$session WHERE username = 'SYSTEM';C. SELECT * FROM v$machine;D. SELECT * FROM v$parameter;3. Oracle数据库中的归档日志主要用于:A. 提高数据查询效率B. 恢复数据文件丢失的数据C. 保证数据的一致性D. 记录数据库的操作历史4. 在Oracle数据库中,如何查看用户的默认表空间?A. SELECT default_tablespace FROM user_users WHERE username = '用户名';B. SELECT tablespace_name FROM user_tablespaces WHERE status = 'UNDO';C. SELECT default_index_space FROM user_indexes;D. SELECT * FROM user_tab_columns;5. Oracle数据库中的锁主要分为哪几种类型?A. 共享锁B. 排他锁C. 行级锁D. 表级锁6. 在Oracle数据库中,如何查看当前数据库的版本信息?A. SELECT * FROM v$version;B. SELECT * FROM product_components;C. SELECT * FROM all_objects WHERE object_type = 'VERSION';D. SELECT * FROM user_objects;7. Oracle数据库中的数据字典主要包含哪些内容?A. 数据库元数据B. 数据库对象定义C. 数据库物理结构D. 数据库运行时环境8. 在Oracle数据库中,如何进行表空间的切换?A. ALTER DATABASE TABLESPACE source_tablespace INTO target_tablespace;B. ALTER TABLE source_table_name SWITCH TABLESPACE target_tablespace;C. ALTER DATABASE CREATE TABLESPACE new_tablespace;D. ALTER TABLESPACE source_tablespace RENAME TO target_tablespace;9. Oracle数据库中的审计功能主要用于:A. 记录用户操作B. 加密数据库数据C. 监控数据库性能D. 防止SQL注入攻击10. 在Oracle数据库中,如何查看当前的警告信息和错误信息?A. SELECT * FROM v$warning;B. SELECT * FROM v$errlog;C. SELECT * FROM user_errors;D. SELECT * FROM v$system_error;11. 在Oracle数据库中,如何查看当前系统的并发用户数?A. 使用 `v$session`视图B. 使用 `v$process`视图C. 使用 `v$metric`视图D. 使用 `v$statname`视图12. 在Oracle数据库中,执行以下哪个命令可以查看表的存储空间使用情况?A. `SELECT * FROM TABLSPACE`B. `SELECT * FROM USER_TABLES`C. `SELECT * FROM DBA_TABLESPACES`D. `SELECT * FROM ALL_TABLESPACES`13. 在Oracle数据库中,如何设置用户密码过期策略?A. 使用 `ALTER USER`命令B. 使用 `ALTER SYSTEM`命令C. 使用 `CREATE USER`命令D. 使用 `GRANT`命令14. Oracle数据库中的事务隔离级别中,哪个级别可以防止脏读?A. READ UNCOMMITTEDB. READ COMMITTEDC. REPEATABLE READD. SERIALIZABLE15. 在Oracle数据库中,如何查看索引的使用情况?A. 使用 `SELECT * FROM USER_INDEXES`B. 使用 `SELECT * FROM ALL_INDEXES`C. 使用 `SELECT * FROM DBA_INDEXES`D. 使用 `SELECT * FROM V$INDEXES`16. Oracle数据库中的数据定义语言(DDL)包括哪些操作?A. 创建表B. 创建索引C. 创建视图D. 修改数据17. 在Oracle数据库中,如何查看用户的登录历史?A. 使用 `v$session`视图B. 使用 `v$login`视图C. 使用 `v$history`视图D. 使用 `v$logfile`视图18. Oracle数据库中最小的数据存储单位是什么?A. 数据块B. 表空间C. 段D. 元组19. 在Oracle数据库中,执行以下哪个命令可以清除所有的缓冲区缓存?A. ALTER SYSTEM CHECKPOINT;B. ALTER SYSTEM FLUSH BUFFER_CACHE;C. ALTER SYSTEM LOAD BALANCE;D. ALTER DATABASE CLOSE;20. 在Oracle数据库中,如何查看表的统计信息并更新它们?A. 使用ALTER TABLE命令B. 使用ALTER INDEX命令C. 使用SELECT命令D. 使用UPDATE命令21. 在Oracle数据库中,如何进行数据库性能调优?A. 只需要增加硬件资源B. 只需要调整SQL语句C. 需要综合分析系统资源使用情况并进行相应的调整D. 只需要修改数据库配置文件22. 在Oracle数据库中,如何查看当前的磁盘I/O统计信息?A. 使用v$sysstat视图B. 使用v$metric视图C. 使用v$iostat视图D. 使用v$perfstat视图23. 在Oracle数据库中,如何查看数据库的日志文件位置?A. 使用v$logfile视图B. 使用v$log视图C. 使用v$log_history视图D. 使用v$archived_log视图24. 在Oracle数据库中,如何查看表空间的使用情况?A. 使用SELECT命令结合DBMS_SPACE包B. 使用v$tablespace和v$freelists视图C. 使用ALTER TABLE命令D. 使用CREATE INDEX命令25. 在Oracle数据库中,如何查看数据库的备份和恢复状态?A. 使用v$backup和v$restore视图B. 使用v$backup_device和v$restore_device视图C. 使用v$backup_history和v$restore_history视图D. 使用v$backup_policy和v$restore_policy视图26. Oracle数据库中的归档日志用于:A. 提供数据备份功能B. 支持数据迁移C. 记录数据库的审计信息D. 避免数据丢失27. 在Oracle数据库中,如何进行表空间的维护性操作?A. 使用 ALTER TABLESPACE 语句B. 使用 CREATE TABLESPACE 语句C. 使用 ALTER DATABASE 语句D. 使用 CREATE INDEX 语句28. Oracle数据库中的锁类型包括:A. 共享锁B. 排他锁C. 意向锁D. 自动锁29. 在Oracle数据库中,如何查看表的存储结构?A. 使用 DESC 关键字B. 使用 TABLESPACE 语句C. 使用 DBMS_METADATA 包D. 使用 SELECT 语句30. Oracle数据库的性能优化可以通过以下哪些方法实现?A. 增加数据缓冲区大小B. 调整日志文件的大小和位置C. 合理设计索引D. 使用分页查询31. 在Oracle数据库中,如何查看用户权限和角色?A. 使用 GRANT 和 REVOKE 语句B. 使用 USER 语句C. 使用 SESSION 语句D. 使用 DBMS_SESSION 包32. Oracle数据库中的数据导入工具是:A. SQL*LoaderB. SQL*PlusC. DBMS_SQLD. EXPDP33. 在Oracle数据库中,如何对查询结果进行排序?A. 使用 ORDER BY 子句B. 使用 GROUP BY 子句C. 使用 HAVING 子句D. 使用 LIMIT 子句34. Oracle数据库中最小的数据块大小是多少?A. 8KB. 16KC. 32KD. 64K35. 在Oracle数据库中,如何查看表的空间使用情况?A. 使用`dbms_stats`包B. 使用`select * from user_segments`命令C. 使用`select * from v$segment`命令D. 使用`select * from all_segments`命令36. Oracle数据库中的锁有哪些类型?(多选)A. 共享锁B. 排他锁C. 更新锁D. 意向锁37. 在Oracle数据库中,如何进行表空间的扩容?A. 使用`ALTER DATABASE DATAFILE ADD PRIMARY LOCATION`命令B. 使用`ALTER TABLESPACE ADD DATAFILE`命令C. 使用`ALTER DATABASE CREATE TEMPORARY TABLESPACE`命令D. 使用`ALTER SYSTEM SET SMALL_TABLE_THRESHOLD`命令38. Oracle数据库中的事务隔离级别有哪些?(多选)A. 读未提交B. 读已提交C. 可重复读D. 串行化39. 在Oracle数据库中,如何查看用户的登录日志?A. 使用`v$logins`视图B. 使用`v$session`视图C. 使用`v$history`视图D. 使用`user_logins`视图40. Oracle数据库中的存储过程和函数有什么区别?A. 存储过程可以有返回值,函数不能有返回值B. 函数可以有返回值,存储过程不能有返回值C. 存储过程和函数都可以有返回值D. 存储过程和函数都不能有返回值41. 在Oracle数据库中,如何进行数据库的性能调优?A. 使用`EXPLAIN PLAN`命令B. 使用`OPTIMIZE TABLE`命令C. 使用`ALTER INDEX REBUILD`命令D. 使用`SELECT * FROM v$database`命令二、问答题1. 什么是数据库的三级模式结构?请简要描述每一级的功能。
oracle查询⽤户的权限 DBA_* 描述的是数据库中的所有对象 ALL_* 描述的是当前⽤户有访问权限的所有对象 USER_* 描述的是当前⽤户所拥有的所有对象 查看所有⽤户: select * from dba_users; --->显⽰所有⽤户的详细信息 select * from all_users; --->显⽰⽤户及⽤户id和创建⽤户时间三个字段 select * from user_users; --->显⽰当前⽤户的详细信息。
查看当前⽤户: select * from v$session; --->查看所有连接信息查看⾓⾊:select * from user_role_privs; --->当前⽤户被授予的⾓⾊select * from dba_role_privs; --->全部⽤户被授予的⾓⾊select * from dba_roles; --->查看所有⾓⾊Select * from ROLE_ROLE_PRIVS; --->查看所有⾓⾊被赋予的⾓⾊ 基本权限查询: select * from session_privs; --->当前⽤户所拥有的全部权限 select * from user_sys_privs; --->当前⽤户的系统权限 select * from user_tab_privs; --->当前⽤户的表级权限 select * from dba_sys_privs; --->所有⽤户的拥有的权限,可查询某个⽤户所拥有的系统权限 select * from role_sys_privs; --->查看⾓⾊(只能查看登陆⽤户拥有的⾓⾊)所包含的权限查看⽤户对象权限:select * from dba_tab_privs; --->查看所有⽤户的对象权限select * from all_tab_privs; --->查看当前⽤户的所拥有对象select * from user_tab_privs; --->查看当前⽤户的对象权限select * from V$PWFILE_USERS; --->查看当前⽤户有sysdba或sysoper系统权限(查询时需要相应权限)查看⼀个⽤户的所有权限包含其⾓⾊的权限select privilege from dba_sys_privs where grantee='SCOTT'unionselect privilege from dba_sys_privs where grantee in (select granted_role from dba_role_privs where grantee='SCOTT' );。
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数据库的⽤户以及表空间1 2 3 4 5 6最直观的⽅法就是直接在pl/sql⾥查看命令⾏如下查看所有⽤户:select* from all_users;查看表空间:select tablespace_name from dba_tablespaces;查看⽤户具有怎样的⾓⾊:select* from dba_role_privs where grantee='⽤户名';查看某个⾓⾊包括哪些系统权限:select* from dba_sys_privs where grantee='DBA'查看oracle中所有的⾓⾊:select* from dba_roles;1、⾸先,我们可以先建⽴⾃⼰的⼀个⽤户表空间,创建表空间的格式如下:create tablespace test(表空间的名字)datafile 'D:\oracle\product\10.2.0\userdata\test.dbf' (这边可以写成oracle的某个路径下)size 50m (初始⼤⼩)autoextend on;(⾃动扩展)2、接下来,我们可以创建⼀个⾃⼰的⽤户,创建格式如下:CREATE USER utest (⽤户名)IDENTIFIED BY upassword(密码)DEFAULT TABLESPACE test(上⾯创建的表空间)TEMPORARY TABLESPACE temp;(临时表空间就写temp即可)3、然后,我们需要给⾃⼰的⽤户赋予权限来管理⾃⼰的表空间GRANT CONNECT TO utest;GRANT RESOURCE TO utest;GRANT dba TO utest;--dba为最⾼级权限,可以创建数据库,表等。
以上三条语句的执⾏环境都需要进⼊oralce之后cmd下进⼊oracle的⽅式sqlplus system/密码回车即可4、接下来我们就可以将我们的dmp⽂件导⼊到我们⾃⼰的表空间中了,导⼊⽅式imp usename/password@SID full=y file= d:\data\xxxx.dmp ignore=y导⼊实例imp utest/upassword file=D:\20140227.dmp full=y ignore=y (将⽂件导⼊到我们⾃⼰新建的⽤户的表空间中) 注意:这条语句的执⾏环境是刚进命令台时的环境。
oracle 查询用户权限的语句Oracle是一种关系型数据库管理系统,可以用来存储和管理大量的数据。
在Oracle中,用户权限是指用户对数据库对象(如表、视图、存储过程等)的访问和操作权限。
用户权限的查询可以帮助管理员了解当前用户的权限情况,以便进行权限管理和安全控制。
下面是一些查询用户权限的Oracle语句:1. 查询当前用户的所有权限:```SELECT * FROM USER_SYS_PRIVS;```该语句可以查询当前用户被授予的系统级权限,返回结果包括权限名称和授权者。
2. 查询当前用户对指定表的权限:```SELECT * FROM USER_TAB_PRIVS WHERE TABLE_NAME = '表名';```该语句可以查询当前用户对指定表的权限,返回结果包括权限类型(如SELECT、INSERT、UPDATE、DELETE等)、授权者和表名。
3. 查询当前用户对指定视图的权限:```SELECT * FROM USER_TAB_PRIVS WHERE TABLE_NAME = '视图名';```该语句可以查询当前用户对指定视图的权限,返回结果与查询表权限的语句相似。
4. 查询当前用户对指定存储过程的权限:```SELECT * FROM USER_PROC_PRIVS WHERE PROCEDURE_NAME = '存储过程名';```该语句可以查询当前用户对指定存储过程的权限,返回结果包括权限类型(如EXECUTE)、授权者和存储过程名。
5. 查询当前用户对指定包的权限:```SELECT * FROM USER_TAB_PRIVS WHERE TABLE_NAME = '包名';```该语句可以查询当前用户对指定包的权限,返回结果与查询表权限的语句相似。
6. 查询当前用户对指定序列的权限:```SELECT * FROM USER_TAB_PRIVS WHERE TABLE_NAME = '序列名';```该语句可以查询当前用户对指定序列的权限,返回结果与查询表权限的语句相似。
如何查看oracle用户具有的权限和角色
上次有同学问我,如何查看一个oracle用户具有的权限和角色,我一时没答上来,回头好好研究了一下,记录一下,备查:
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_USERS
比如我要查看用户wzsb的拥有的权限:
SQL> select * from dba_sys_privs where grantee='WZSB';
GRANTEE PRIVILEGE ADMIN_OPTION ------------------------------ ---------------------------------------- ------------
WZSB CREATE TRIGGER NO
WZSB UNLIMITED TABLESPACE NO
比如我要查看用户wzsb的拥有的角色:
SQL> select * from dba_role_privs where grantee='WZSB';
GRANTEE GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE
------------------------------ ------------------------------ ------------ ------------
WZSB DBA NO YES
查看一个用户所有的权限及角色
select privilege from dba_sys_privs where grantee='WZSB'
union
select privilege from dba_sys_privs where grantee in
(select granted_role from dba_role_privs where grantee='WZSB' );。