当前位置:首页>正文

oracle查询权限 oracle中怎样查询用户权限

2023-04-14 15:53:24 互联网 未知

oracle查询权限

这是oracle的an quan 机制,在存储过程或者函数中调用其他用户下的过程、表、函数等 一定要显式fu quan才可以,利用角色fu quan是不可以的。

因此:
为什么我在B用户下查询A用户的表,用sql语句可以直接查
===这个是角色fu quan导致的,比如B用户有数据库管理员角色

类似的:
grant select on table_name to user_name
grant execute on procedure_name to user_name
grant execute on function_name to user_name

这些就是显式赋权。
。。。
---
以上,希望对你有所标准。

oracle中怎样查询用户权限?

查看用知户系统权限:道
select * from dba_sys_privs
select * from session_privs
select * from user_sys_privs
查看用户对内象权容限:
select * from dba_tab_privs
select * from all_tab_privs
select * from user_tab_privs

oracle怎么查看自己的权限

oracle怎么查看自己的权限
"ORACLE数据字典视图的种类分别为:USER,ALL 和 DBA.
USER_*:有关用户所拥有的对象信息,即用户自己创建的对象信息
ALL_*:有关用户可以访问的对象的信息,即用户自己创建的对象的信息加上
其他用户创建的对象但该用户有权访问的信息

我问一下 怎么查询Oracle用户权限?

1. oracle用户查看自己的权限和角色
select * from user_tab_privs
select * from user_role_privs
2. sys用户查看任一用户的权限和角色
select * from dba_tab_privs
select * from dba_role_privs

oracle中如何查找用户具有哪些权限

一 确定角色的权限:
select * from role_tab_privs 包含了授予角色的对象权限
select
* from role_role_privs 包含了授予另一角色的角色
select * from
role_sys_privs 包含了授予角色的系统权限
二 确定用户帐户所授予的权限:
select *
from DBA_tab_privs 直接授予用户帐户的对象权限
select * from DBA_role_privs
授予用户帐户的角色
select * from DBA_sys_privs 授予用户帐户的系统权限
三 查看当前用户权限及角色:
SQL> select * from
session_privs
SQL> select * from user_role_privs
四 查询某一角色的具体权限:
例如查看RESOURCE具有那些权限

SQL> SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE=RESOURCE

如何查看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 )

oracle怎样查某个用户的权限

select * from dba_sys_privs -- 查看用户系统权限
select * from dba_tab_privs -- 查看用户对象权限
select * from dba_role_privs -- 查看用户角色权限

怎么查询oracle中是否有权限查询表

方法1:
  根据指定用户名获得对应用户所拥有权限的表
  SELECT table_name, owner FROM all_tables WHERE owner = SCOTT方法2:
  通过tab视图获得当前登录用户所有表和视图,通过tabletype过滤获得所有表SELECT * FROM tab WHERE tabtype = TABLE方法3:
  根据user_tables表获得当前用户拥有所有表
  SELECT table_name FROM user_tables
  方法4:
  根据sys表空间下all_object表获得指定用户指定类型对象(表)SQL> SELECT object_name FROM sys.all_objects WHERE owner=SCOTT AND object_type=TABLE

oracle中有没有赋予一个用户查询另一个用户所有表的权限

普通用户是没有权限赋 select any table 的权限的
你用A用户登录,给B赋权限
先用下面的查出所有的表的语句,然后复制出来一下子执行就可以了
select grant select on A. || table_name || to B from user_tables