如何Oracle查出一个用户具有的所有系统权限和对象权限

如何Oracle查出一个用户具有的所有系统权限和对象权限,第1张

--管理员查询

select  from DBA_TAB_PRIVS tr where TRGRANTEE in (:用户名输入);

Select drpgranted_role, drpadmin_option, drpdefault_role, drpgrantee

      FROM dba_role_privs drp

     WHERE drpgrantee = :用户名输入

        OR drpgrantee = 'PUBLIC'

        ;

--当前用户自查询

select  from USER_TAB_PRIVS tr where TRGRANTEE in (:限当前用户);

Select drpgranted_role, drpadmin_option, drpdefault_role, drpgrantee

      FROM user_role_privs drp

     WHERE drpgrantee = :限当前用户

        OR drpgrantee = 'PUBLIC'

        ;

开始,运行输入cmd或是wind+r输入cmd

使用dba登录。

先创建一个用户:使用命令:create user 用户名 identified by 密码

给该用户解锁:使用命令:用户解锁 alter user 用户名 account unlock(不解锁无法登陆)

给该用户授权:grant create session to 用户名。这里是给的登录权限。如果想把dba的权限授权给该用户。

1、create user userName identified by password;

2、grant select any table to userName; --授予查询任何表

3、grant select any dictionary to userName;--授予 查询任何字典

执行上面三步就行了,那么这个用户就只有查询权限,其他的权限都没有!!

具体需要哪些权限需要看用户的实际需要。

系统权限分类:

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

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

CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。

对于普通用户:授予connect, resource权限。

对于DBA管理用户:授予connect,resource, dba权限。

系统权限授权命令:

系统权限只能由DBA用户授出:sys, system(最开始只能是这两个用户)

授权命令:SQL> grant connect, resource, dba to 用户名1 [,用户名2];

注:普通用户通过授权可以具有与system相同的用户权限,但永远不能达到与sys用户相同的权限,system用户的权限也可以被回收。

"ORACLE数据字典视图的种类分别为:USER,ALL 和 DBA

USER_:有关用户所拥有的对象信息,即用户自己创建的对象信息

ALL_:有关用户可以访问的对象的信息,即用户自己创建的对象的信息加上

其他用户创建的对象但该用户有权访问的信息

DBA_:有关整个数据库中对象的信息

(这里的可以为TABLES,INDEXES,OBJECTS,USERS等。)

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 username,default_tablespace from user_users;

7、查看某个角色的具体权限

如grant connect,resource,create session,create view to TEST;

8、查看RESOURCE具有那些权限

用SELECT FROM DBA_SYS_PRIVS WHERE GRANTEE='RESOURCE

"

1、双击桌面sqldeveloper软件图标启动软件。

2、新建数据库连接,填写登录数据库信息并选择相应角色进行登录。

3、登录成功后先查询出hr用户下所有的表名,可直接通过dba_tables来进行查询。

4、把查询权限赋给测试用户的方法有两种,一种为当用户下的表比较少的情况下可以直接通过grant select/delete/update on hrtable-name to cem。

5、授权成功后使用测试用户进行登录即可对授权过查询权限的表进行访问。

以上就是关于如何Oracle查出一个用户具有的所有系统权限和对象权限全部的内容,包括:如何Oracle查出一个用户具有的所有系统权限和对象权限、怎么给oracle数据库创建用户,并赋权限、oracle一个用户怎么给查询权限等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9669373.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存