Java培训-ORACLE数据库学习【2】用户权限

  1. 连接用户:connect 用户名/密码;
  2. 创建用户:create user 用户名 identified by 密码;
  3. 授权:grant 权限 to 用户名;

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

查询用户拥有的权限:

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‘ );

  3.1 oracle权限分类:

系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。
      实体权限:某种权限用户对其它用户的表或视图的存取权限。(是针对表或视图而言的)。

3.2 系统权限:

DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
      RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
     CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。
      对于普通用户:授予connect, resource权限。
      对于DBA管理用户:授予connect,resource, dba权限。

  3.3 实体权限:

  • 实体权限的授命令
    语法如下:GRANT 实体权限名|ALL TO 用户|角色|PUBLIC,其中,ALL表示实体的所有实体权限。
    如:SQL>GRANT SELECT ON BOOKS_QUTHORS TO USER1;
  • 用来查询表的实体权限的授权信息:SQL>SELECT * FROM USER_TAB_PRIVES
  • 回收实体权限,使用REVOKE,其语法如下:
    REVOKE 实体权限名|ALL ON 实体名 FROM 用户名|角色名|PUBLIC。

权限传递:

grant select on xiaoming.temp to xiaohong ;//登录xiaoming后,将小明的temp表的查询权限授给xiaohong;

时间: 2024-12-29 23:53:54

Java培训-ORACLE数据库学习【2】用户权限的相关文章

Java操作Oracle数据库自建工具库

在学习Java操作Oracle数据库的时候,忽然想到这个可不可以像php那样自己建立一个工具类,这样的话可以大大的减小代码的复杂度.也可以提高工作效率. java如果不能自己建立工具类,那是非常可笑的,但是,在建立的过程中,出现了一些问题,希望在以后不要犯类似的错误. 首先,我们在自建工具类之前必然是先模拟测试的,在这个例子当中,其过程如下: 1:引入Oracle的驱动程序 2:建立OracleTools类,并且定义其成员变量. 3:写OracleTools类的成员方法和构造函数. 4:如果全部

java 链接Oracle数据库的工具类

java连接Oracle数据库的方式 1 特点:oracle.jdbc.OracleDriver是注册oracle驱动类: jdbc:oracle:thin:@localhost:1521:xe:连接oracle的方式:网络协议+访问方式+IP+端口号+xe数据库: user:hr数据库用户名 Password:hr数据库的用户密码 缺点:statement方式连接数据库容易被黑客注入式攻击 所有不安全 现在企业中很少采用这种方式的了 连接数据库后一定的关闭连接,这个最容易忘记 调用close(

java连接oracle数据库,关闭连接出现异常:java.sql.SQLRecoverableException: IO Error: Connection reset

java.sql.SQLRecoverableException: IO Error: Connection reset at oracle.jdbc.driver.T4CConnection.logoff(T4CConnection.java:612) at oracle.jdbc.driver.PhysicalConnection.close(PhysicalConnection.java:5094) at com.sms.send.StartTaskNew.run(SmsSend.java

一个非常标准的Java连接Oracle数据库的示例代码

最基本的Oracle数据库连接代码(只针对Oracle11g): 1.右键项目->构建路径->配置构建路径,选择第三项"库",然后点击"添加外部Jar",选择"D:\Oracle\app\oracle\product\11.2.0\server \jdbc\lib\ojdbc6_g.jar"(注:D:\Oracle为数据库的安装路径). 2.以下代码为非常标准的Oracle数据库连接代码示例: /** * 一个非常标准的连接Oracl

loadjava 把java导入Oracle数据库

1)load jar file loadjava -r -f -verbose -resolve -user xmlbook/xmlbook xmlparserv2.jar  2)load class file loadjava -r -f  -user user_name/password[@URL] oracle/AAA/bbb/CCC.class  3)remove Java classes from the database dropjava -r -f  -user user_name

oracle入门(5)——java连接oracle数据库

[本文介绍] 前面几篇说了那么多,最终还没讲到如何用java连接数据库,本文实用一点,讲讲如何连接数据库. [java连接oracle数据库] 1.导入jdbc驱动:看到这里,就忙着上网找驱动?不,安装了oracle就有自带驱动了,路径在:安装目录\product\11.2.0\dbhome_1\jdbc\lib,下面有多个jar包,选择适合自己的一个(最简单的办法就是导入项目后看看能连接不,能连接的就是适合的驱动) 2.代码: 关于url:@后面是IP:端口,这两个不知道怎么查的请看博文:ht

JAVA读取Oracle数据库BLOB字段数据文件并保存到本地文件

******JAVA读取Oracle数据库BLOB字段数据文件并保存到本地文件****** package com.bo.test; import java.io.FileOutputStream; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import

Java培训-Oracle学习【1】数据库连接

1.连接ORACLE数据库: 连接放在同一个类的主方法中 package com.softeem.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCTest {          public static void 

Oracle数据库学习小结(一)

今天要跟大家来聊一聊俺在使用Oracle数据库的这段时间里面学到的一些知识. 俺最近出来工作了,来到的公司是使用的Oracle数据库,之前一直使用的是SQL的数据库,在性质上二者前者是收费的,后者是开源的:在使用上主要还是靠自己探索,下面说说俺的一些收获.在前段时间俺一直在鼓捣组长分下来的一个任务,定时同步数据的一个小程序,俺的Oracle之旅也是从这里才算是正式开始的. 近期的学习中俺了解到Oracle数据库本身是自带三个默认用户的:sys(网络管理员).system(本地普通管理员).sco