oracle 查看用户、权限、角色

合集下载

oracle数据库用户之间授权

oracle数据库用户之间授权

oracle数据库⽤户之间授权 今天遇到⼀个数据库的问题: 系统数据库⽤户下创建了⼏个视图⽤于外部系统开发报表使⽤,当外部系统提取视图数据时,需要通过⼀个只能访问需要视图权限的⽤户,于是想到给他创建⼀个新的⽤户,并给这个⽤户分配只能访问这⼏个视图的权限。

1. 使⽤ oracle sql developer 客户端登陆数据库。

2. 查看当前数据库⽤户拥有的⾓⾊: select * from USER_ROLE_PRIVS; 查看⽤户系统权限:select * from dba_sys_privs; 查看⽤户系统权限:select * from user_sys_privs; 3、因为系统数据库⽤户拥有dba权限,所以,使⽤数据库系统⽤户创建⽤户: create user BI identified by 123; 4、给BI⽤户授权连接权限: grant connect to BI; 5、给BI⽤户授权 grant RESOURCE to BI; 6、给BI⽤户授权select 某视图的权限: 7、使⽤BI⽤户连接数据库: 查询视图发现提⽰表或视图不存在:SELECT * FROM VW_MONTHLY_BUDGET_ANALYSI; 在视图前加上视图所有者⽤户名称则可以查询成功。

eg:SELECT * FROM FSSC.VW_MONTHLY_BUDGET_ANALYSI; 7、给BI⽤户授权同义词权限: 8、使⽤BI⽤户连接数据库: 此时查询发现还是不可以 9、在BI⽤户下创建同义词视图: 10、BI⽤户下直接查询视图名称则可以查询 11、但是登陆BI⽤户,则在视图列表⾥看不到任何视图,如何能够查询并且登陆⽤户也能看到该视图? 。

常用查询Oracle的表,视图,存储过程,用户等SQL命令

常用查询Oracle的表,视图,存储过程,用户等SQL命令

常⽤查询Oracle的表,视图,存储过程,⽤户等SQL命令有时候需要导出某⽤户下的所有table、view、sequence、trigger等信息,下⾯的SQL可以将这些信息select出来:select * from user_tables;select * from user_views;select * from user_sequences;select * from user_triggers;查看当前⽤户的缺省表空间 SQL>select username,default_tablespace from user_users; 查看当前⽤户的⾓⾊ SQL>select * from user_role_privs; 查看当前⽤户的系统权限和表级权限 SQL>select * from user_sys_privs; SQL>select * from user_tab_privs; 查看⽤户下所有的表 SQL>select * from user_tables;1、⽤户 查看当前⽤户的缺省表空间 SQL>select username,default_tablespace from user_users; 查看当前⽤户的⾓⾊ SQL>select * from user_role_privs; 查看当前⽤户的系统权限和表级权限 SQL>select * from user_sys_privs; SQL>select * from user_tab_privs; 显⽰当前会话所具有的权限 SQL>select * from session_privs; 显⽰指定⽤户所具有的系统权限 SQL>select * from dba_sys_privs where grantee=’GAME’;2、表 查看⽤户下所有的表 SQL>select * from user_tables; 查看名称包含log字符的表 SQL>select object_name,object_id from user_objects where instr(object_name,’LOG’)>0; 查看某表的创建时间 SQL>select object_name,created from user_objects where object_name=upper(‘&table_name’); 查看某表的⼤⼩ SQL>select sum(bytes)/(1024*1024) as “size(M)” from user_segments where segment_name=upper(‘&table_name’); 查看放在ORACLE的内存区⾥的表 SQL>select table_name,cache from user_tables where instr(cache,’Y')>0;3、索引 查看索引个数和类别 SQL>select index_name,index_type,table_name from user_indexes order by table_name; 查看索引被索引的字段 SQL>select * from user_ind_columns where index_name=upper(‘&index_name’); 查看索引的⼤⼩ SQL>select sum(bytes)/(1024*1024) as “size(M)” from user_segments where segment_name=upper(‘&index_name’);4、序列号 查看序列号,last_number是当前值 SQL>select * from user_sequences;5、视图 查看视图的名称 SQL>select view_name from user_views; 查看创建视图的select语句 SQL>set view_name,text_length from user_views; SQL>set long 2000; 说明:可以根据视图的text_length值设定set long 的⼤⼩ SQL>select text from user_views where view_name=upper(‘&view_name’);6、同义词 查看同义词的名称 SQL>select * from user_synonyms;7、约束条件 查看某表的约束条件 SQL>select constraint_name, constraint_type,search_condition, r_constraint_name from user_constraints where table_name = upper(‘&table_name’); SQL>select c.constraint_name,c.constraint_type,cc.column_name from user_constraints c,user_cons_columns cc where c.owner = upper(‘&table_owner’) and c.table_name = upper(‘&table_name’) and c.owner = cc.owner and c.constraint_name = cc.constraint_name order by cc.position;8、存储函数和过程 查看函数和过程的状态 SQL>select object_name,status from user_objects where object_type=’FUNCTION’; SQL>select object_name,status from user_objects where object_type=’PROCEDURE’; 查看函数和过程的源代码 SQL>select text from all_source where owner=user and name=upper(‘&plsql_name’);。

oracle赋权方法

oracle赋权方法

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权限

Oracle中connect权限

Oracle中connect,resource角色权限connect resource权限grant connect,resource to user;执行上面的sql语句后用户包括的权限: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里可以查到:SQL> select grantee,privilege from dba_sys_privs where grantee='RESOURCE' order by privilege;GRANTEE PRIVILEGE------------ ----------------------RESOURCE CREATE CLUSTERRESOURCE CREATE INDEXTYPERESOURCE CREATE OPERATORRESOURCE CREATE PROCEDURERESOURCE CREATE SEQUENCERESOURCE CREATE TABLERESOURCE CREATE TRIGGERRESOURCE CREATE TYPE已选择8行。

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.查看用户对象权限: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;注意:1、以下语句可以查看Oracle提供的系统权限select name from sys.system_privilege_map2、查看一个用户的所有系统权限(包含角色的系统权限)select privilege from dba_sys_privs where grantee='DATAUSER'union select privilege from dba_sys_privs where grantee in (select granted_role from dba_role_privs where grantee='DATAUSER' );。

ORACEL

ORACEL

ORACEL ⽤户⾓⾊权限⼀.权限是⽤户对⼀项功能的执⾏权⼒。

在Oracle中,根据系统管理⽅式不同,将权限分为系统权限和实体权限两类。

系统权限是指是否被授权⽤户可以连接到数据库上,在数据库中可以进⾏哪些系统操作。

⽽实体权限是指⽤户对具体的模式实体(schema)所拥有的权限。

select any table是系统权限,它表⽰可以查看任何表。

⽽select on table1是实体权限,表⽰对表table1的查询权限。

⼆.系统权限授权命令的使⽤语法:grant 权限名 to ⽤户|⾓⾊|public(public表⽰将权限赋给数据库中所有的⽤户)例:grant create table to user1 赋给⽤户user1权限create tabel的授权命令授权语句还可以增加with admin option选项,表⽰被授权的⽤户可以将它所得权限赋给其他⽤户例:grant create table to user1,user2 with admin option若要了解各⽤户所拥有的系统权限,可以查询数据字典User_sys_privs、Role_sys_privs若要回收权限,则使⽤revoke命令revoke create table from user1三.实体权限管理实体权限是指某⼀⽤户对某⼀特定schema对象的操作权限。

1.实体权限分类不同的实体类型有不同的实体权限,如下表表视图序列进程快照Alter y yDelete y y yExecute yIndex yInsert y yReferences ySelect y y y yUpdate y y y y2.实体权限的授权命令语法:grant 实体权限名|All to ⽤户|⾓⾊|public 其中,All表⽰实体的所有实体权限如:grant select on books to user1若要了解表的实体权限授权信息,则可以查询select * from user_tab_privs若要收回实体权限,则使⽤revokerevoke 实体权限名|All on 实体名 from ⽤户名|⾓⾊名|public*******1.系统权限和对象权限都通过grant语句授予⽤户或⾓⾊。

查询oracle中所有用户信息(转)

查询oracle中所有用户信息(转)

查询oracle中所有⽤户信息(转)----查询oracle中所有⽤户信息----1、查询数据库中的表空间名称----1)查询所有表空间select tablespace_name from dba_tablespaces;select tablespace_name from user_tablespaces;----2)查询使⽤过的表空间select distinct tablespace_name from dba_all_tables;select distinct tablespace_name from user_all_tables;----2、查询表空间中所有表的名称select * from dba_all_tables where tablespace_name = 'SYNC_PLUS_1' and owner='GDSDCZJ'----3、查询系统⽤户select * from all_usersselect * from dba_users----4、查看当前连接⽤户select * from v$session----5、查看当前⽤户权限select * from session_privs----6、查看所有的函数和存储过程select * from user_source----其中TYPE包括:PROCEDURE、FUNCTION----7、查看表空间使⽤情况select sum(Bytes_size) from (select a.file_id "FileNo",a.tablespace_name "表空间",a.bytes/1024/1021/1024 Bytes_size,a.bytes - sum(nvl(b.bytes, 0)) "已⽤",sum(nvl(b.bytes, 0)) "空闲",sum(nvl(b.bytes, 0)) / a.bytes * 100 "空闲百分率"from dba_data_files a, dba_free_space bwhere a.file_id = b.file_id(+)group by a.tablespace_name, a.file_id, a.bytesorder by a.tablespace_name);---------------------------------------------------------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----8.SqlPlus中查看⼀个⽤户所拥有权限SQL>select * from dba_sys_privs where grantee='username';其中的username即⽤户名要⼤写才⾏。

Oracle创建用户并给用户授权查询指定表或视图的权限

Oracle创建用户并给用户授权查询指定表或视图的权限

Oracle创建⽤户并给⽤户授权查询指定表或视图的权限MSV31账户登录数据库进⾏如下操作:CREATE USER NORTHBOUND IDENTIFIED BY NORTHBOUNDDEFAULT TABLESPACE "TBS_DNINMSV31"TEMPORARY TABLESPACE "TEMP2"QUOTA UNLIMITED ON "TBS_DNINMSV31";GRANT "CONNECT" TO NORTHBOUND;ALTER USER NORTHBOUND DEFAULT ROLE NONE;GRANT CREATE SESSION TO NORTHBOUND;GRANT SELECT ON "DNINMSV31"."V_DNDEVICE" TO NORTHBOUND;GRANT SELECT ON "DNINMSV31"."V_DNSUBNE" TO NORTHBOUND;GRANT SELECT ON "DNINMSV31"."V_DNPACKAGE" TO NORTHBOUND;GRANT SELECT ON "DNINMSV31"."V_DNPORT" TO NORTHBOUND;【注】:在⽤NORTHBOUND登录后查询的时候要在视图前加上DNINMSV31,否则会报表或视图不存在。

例如:select * from DNINMSV31.V_DNDEVICE; --可以正常执⾏select * from DNINMSV31.TB_DEVICE where rownum<5; --执⾏的时候会报表或视图不存在--------------------------------------------------------------------------------------------------GRANT debug any procedure, debug connect session TO hnckb;grant select on sys.dba_pending_transactions to hnckb;grant CREATE VIEW,CREATE JOB,CREATE SYNONYM to hnckb;grant CONNECT,RESOURCE to hnckb;1.标准⾓⾊CONNECTRESOURCE2.系统权限CREATE VIEWCREATE DATABASE LINKCREATE JOBCREATE SYNONYMUNLIMITED TABLESPACE更改定额命令:ALTER USER 名称 QUOTA 0 ON 表空间名ALTER USER 名字 QUOTA (数值)K|M|UNLIMITED ON 表空间名;使⽤⽅法:A、控制⽤户数据增长B、当⽤户拥有⼀定的数据,⽽管理员不想让他在增加新的数据的时候。

oracle_创建create_user_及授权grant_查看登陆的用户及更改用户默认表空间

oracle_创建create_user_及授权grant_查看登陆的用户及更改用户默认表空间

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 用户的表。

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

查看用户、权限、角色的命令和视图
a
1.查看所有用户:
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_PRIVILEGES
ALL_TAB_PRIVS
ROLE_TAB_PRIVS: 某个角色被赋予的相关表的权限
oracle与用户角色权限相关的视图
Oracle 本身的数据字典设计我个人觉得很合理, 因为DBA_xxx, ALL_xxx,USER_xxx 让人一看大概就知道这个视图是干什么用的. 本文简要总结了一下与权限,角色相关的视图.
一. 概述
与权限,角色相关的视图大概有下面这些:
1、DBA_SYS_PRIVS: 查询某个用户所拥有的系统权限。

2、USER_SYS_PRIVS: 查询当前用户所拥有的系统权限。

3、SESSION_PRIVS: 查询当前用户所拥有的全部权限。

4、ROLE_SYS_PRIVS: 查询某个角色所拥有的系统权限。

注意: 要以SYS用户登陆查询这个视图,否则返回空。

5、ROLE_ROLE_PRIVS: 当前角色被赋予的角色
6、SESSION_ROLES: 当前用户被激活的角色
7、USER_ROLE_PRIVS: 当前用户被授予的角色
针对表的访问权限的视图:
TABLE_PRIVILEGES
ALL_TAB_PRIVS
ROLE_TAB_PRIVS:某个角色被赋予的相关表的权限。

相关文档
最新文档