精华内容
下载资源
问答
  • 数据库当前用户授予了connect、resource权限,在存储过程里面执行execute immediate 'create table XX'时会报“权限不足”的错误。此时觉得很奇怪,resource角色是具有create table的权限的,为什么在存储过程里面...

    数据库当前用户授予了connect、resource权限,在存储过程里面执行execute immediate 'create table XX'时会报“权限不足”的错误。此时觉得很奇怪,resource角色是具有create table的权限的,为什么在存储过程里面创建表就权限不足了。

     

        查了资料,原因为:用户拥有的角色role在存储过程里面不可用。 一般有如下两种解决方法:

     

        1.显示的给当前用户授权:grant create table to user;

     

        但是如果存储过程里面如果需要用到其他的权限,那也要显示授予,这种方式就比较麻烦了。

     

         2.创建存错过程的时候加上 authid current_user,如:create or replace procedure xx authid current_user is;

     

         如此,存储过程中就可以用到当前用户具有的角色的权限了。相对于第一种方式来说,这种方法比较方便易用。

    展开全文
  • 采用oracle创建用户并授予dba权限  打开plsql 命令窗口 1)创建用户: create user username identified by username;   2)授予dba权限 grant connect,resource,dba to username; 注:username为你注册的...

    采用oracle创建用户并授予dba权限

     打开plsql 命令窗口

    1)创建用户: create user username identified by username;

     

    2)授予dba权限  grant connect,resource,dba to username;

    注:username为你注册的用户名
     

    Oracle数据导入dmp文件可以是“某个用户下的数据库”,也可以是“某张表”,这里以导入数据库为例说明 :

    <方法1:  使用客户端Enterprise Manager Console>

    1.用SYS用户名,以DBA的身份在ie中登入到数据库(ORACLE客户端Enterprise Manager Console)

     

    2.在方案->用户与权限->用户

      新建用户

      同时给该用户授予“角色”:

      CONNECT,DBA,EXP_FULL_DATABASE,IMP_FULL_DATABASE,RESOURCE

      授予系统权限:

      ALTER USER,COMMENT ANY TABLE,CREATE ANY VIEW,CREATESESSION,

      CREATE USER,DELETE ANY TABLE,DROP ANY VIEW,DROP USER,

      UNLIMITED TABLESPACE

     

    3.在命令行下执行:(一定完全按照以下步骤)

    $imp 用户名/口令  回车

    填写导入文件路径:EXPDAT.DMP>c:\a.dmp

    输入插入缓冲区大小:默认不填 回车

    只列出导入文件的内容:   回车

    忽略创建错误:yes

    导入权限:yes

    导入表数据:yes

    导入整个导出文件:yes

    等待……

    成功终止导入,但出现警告。

    例如:

     

    4.打开PLSQL  Developer,用新建的用户名和口令,以normal身份登录

    5.在tables中可以查看导入到表

    6.到此结束(这个问题折腾了一上午)

     

    导出:

    exp username/password@服务名 file=文件路径及文件名

    服务器名的获取:

    1、 先登录conn 用户名/密码

    2、 执行下列sql命令:select name from v$database

    例:我的数据库pcms的用户名和密码都是mmis,服务名为pcms 我要导出到D盘下的pcms.dmp文件,可以这样写:

    exp mmis/mmis@pcms file=d:\pcms.dmp

    SQL> $exp 用户名/密码@服务名 file=路径+文件名

    如下图所示:

     $exp gengjingzhen/********@XE file=d:grains.dmp

     

    大家知道Colb吗?

    CLOB定义

      数据库中的一种保存文件所使用的类型。

      Character Large Object

      SQL 类型 CLOB 在 JavaTM 编程语言中的映射关系。SQL CLOB 是内置类型,它将字符大对象 (Character Large Object) 存储为数据库表某一行中的一个列值。默认情况下,驱动程序使用 SQL locator(CLOB) 实现 Clob 对象,这意味着 CLOB 对象包含一个指向 SQL CLOB 数据的逻辑指针而不是数据本身。Clob 对象在它被创建的事务处理期间有效。

      在一些数据库系统里,也使用Text 作为CLOB的别名,比如SQL Server

    CLOB和BLOB的区别

      CLOB使用CHAR来保存数据。 如:保存XML文档。

      BLOB就是使用二进制保存数据。 如:保存位图。

    JAVA里面对CLOB的操作

      在绝大多数情况下,使用2种方法使用CLOB

      1 相对比较小的,可以用String进行直接操作,把CLOB看成字符串类型即可

      2 如果比较大,可以用 getAsciiStream 或者 getUnicodeStream 以及对应的 setAsciiStream 和 setUnicodeStream 即可

      读取数据

      ResultSet rs = stmt.executeQuery("SELECT TOP 1 * FROM Test1");

      rs.next();

      Reader reader = rs.getCharacterStream(2);

      插入数据

      PreparedStatement pstmt = con.prepareStatement("INSERT INTO test1 (c1_id, c2_vcmax) VALUES (?, ?)");

      pstmt.setInt(1, 1);

      pstmt.setString(2, htmlStr);

      pstmt.executeUpdate();

      更新数据

      Statement stmt = con.createStatement();

      ResultSet rs = stmt.executeQuery("SELECT * FROM test1");

      rs.next();

      Clob clob = rs.getClob(2);

      long pos = clob.position("dog", 1);

      clob.setString(1, "cat", len, 3);

      rs.updateClob(2, clob);

    rs.updateRow();       

    Ok,教程就到这里了,这也是今天额收获。

    展开全文
  • oracle创建包权限限制

    千次阅读 2011-12-31 04:57:11
    运行成功后用户包括的权限: CONNECT角色: --是授予最终用户的典型权利,最基本的  ALTER SESSION --修改会话  CREATE CLUSTER --建立聚簇  CREATE DATABASE LINK --建立数据库链接  CREA
    赋予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 --建立类型
    展开全文
  • oracle 11g 的程序包

    2020-11-07 11:56:51
    程序包是对相关过程、函数、变量、游标和异常等对象的封装。程序包具有模块化、更轻松的应用程序设计、信息隐藏、新增功能和性能更佳等优点。程序包由规范(包头)和主体(包体)两部分组成,及其作用如下图所示: ...

    1. 概念

    程序包是对相关过程、函数、变量、游标和异常等对象的封装。程序包具有模块化、更轻松的应用程序设计、信息隐藏、新增功能和性能更佳等优点。程序包由规范(包头)和主体(包体)两部分组成,及其作用如下图所示:

    在这里插入图片描述

    需要说明的是,包头中声明的变量为公共变量,程序包可以进行访问。而包体中的为私有变量,只能在包体中进行访问。

    2. 创建

    2.1 创建语法

    程序包包头创建语法如下:

    CREATE [OR REPLACE] PACKAGE package_name -- 使用到了package
    IS|AS
    [Public item declarations] -- 公共对象声明
    [Subprogram specification] -- 子程序规范
    END [package_name];
    

    程序包包体创建语法如下:

    CREATE [OR REPLACE] PACKAGE BODY package_name -- 使用到了package 和 body
    IS|AS
    [Private item declarations] -- 私有对象声明
    [Subprogram bodies] -- 子程序主体
    [BEGIN Initialization]
    END [package_name];
    

    2.2 示例

    假设现在有如下 student 表,具体内容如下所示:

    SQL> select * from student;
    
                                        SNO SNAME                                         SAGE
    --------------------------------------- ---------- ---------------------------------------
                                          5 lisi                                            -6
                                          1 Tom                                             31
                                          2 Kite                                            32
                                          3 Bob                                             33
                                          4 Mike                                            34
    

    首先创建如下程序包包头:

    create or replace package pack1
    is
    	aa int := -9; -- 公共变量
    	procedure insert_student(a1 in student%rowtype); -- 声明一个存储过程
    	procedure update_student(a2 in student%rowtype); -- 声明一个存储过程
    end pack1;
    /
    

    接着创建对应的包体:

    create or replace package body pack1 -- 增加一个 body 且名字相对应
    is
    	bb int := 5; -- 声明一个私有变量
    	-- 定义第一个存储过程
        procedure insert_student(a1 in student%rowtype)
        is
        begin
        	insert into student(sno, sname, sage) values (a1.sno, a1.sname, a1.sage);
        	commit;
        	-- 验证一下私有变量
        	dbms_output.put_line(pack1.bb);
        end insert_student;
        -- 定义第二个存储过程
        procedure update_student(a2 in student%rowtype)
        is
        begin
        	update student set sname = a2.sname, sage = a2.sage where sno = a2.sno;
        	commit;
        end update_student;
    end pack1;
    /	
    

    我们来验证一下公有变量和私有变量得访问限制,查看下面输出结果,包体中的公共变量可以在程序包访问。而包体中的私有变量则不可以:

    SQL> execute dbms_output.put_line(pack1.aa);
    
    -9
    
    ------------------------------------------
    
    SQL> execute dbms_output.put_line(pack1.bb);
    begin dbms_output.put_line(pack1.bb); end;
    
    ORA-06550: 第 1,34 列: 
    PLS-00302: 必须声明 'BB' 组件
    ORA-06550: 第 1,7 列: 
    PL/SQL: Statement ignored
    

    同样也可以调用程序包中定义的存储过程,具体如下所示:

    declare
    	stu student%rowtype;
    begin
    	stu.sno := 7;
    	stu.sname := '张章';
    	stu.sage := 42;
    	-- 调用程序包
    	pack1.insert_student(stu);
    end;
    /
    -- 执行上述 PL/SQL 块之后,student 多了一条相应的记录
    SQL> select * from student;
    
                                        SNO SNAME                                         SAGE
    --------------------------------------- ---------- ---------------------------------------
                                          7 张章                                            42
                                          5 lisi                                            -6
                                          1 Tom                                             31
                                          2 Kite                                            32
                                          3 Bob                                             33
                                          4 Mike                                            34
    
    declare
    	stu student%rowtype;
    begin
    	stu.sno := 5;
    	stu.sname := 'zhangsan';
    	stu.sage := 12;
    	-- 调用程序包
    	pack1.update_student(stu);
    end;
    /
    -- 同理如下
    SQL> select * from student;
    
                                        SNO SNAME                                         SAGE
    --------------------------------------- ---------- ---------------------------------------
                                          7 张章                                            42
                                          5 zhangsan                                        12
                                          1 Tom                                             31
                                          2 Kite                                            32
                                          3 Bob                                             33
                                          4 Mike                                            34
    

    3. 程序包中的游标

    程序包中使用游标与我们平常在 PL/SQL 块中游标的方式不太一样。在程序包中,游标的定义分为游标规范和游标主体两部分。在包规范中声明游标规范时必须使用 RETURN 子句指定游标的返回类型,RETURN子句指定的数据类型可以是:

    • 用 %ROWTYPE 属性引用表定义的记录类型
    • 自定义的记录类型,例如 TYPE EMPRECTYP IS RECORD(emp_id INTEGER,salary REAL)来定义的。

    但是不可以是 number,varchar2, %TYPE等类型。

    下面我们介绍在程序包中使用显式游标,示例如下所示:

    -- 创建包头
    CREATE OR REPLACE PACKAGE cur_pack
    IS
    	CURSOR stu_cur(stu_num number) RETURN student%rowtype; -- 游标规范部分,需要带上 return 子句
    	PROCEDURE print_stu(stu_num number);
    end cur_pack;
    /
    
    -- 创建包体
    CREATE OR REPLACE PACKAGE BODY cur_pack
    AS
    	-- 记得参数名称需要与包头的对应上
    	CURSOR stu_cur(stu_num number) RETURN student%ROWTYPE IS SELECT * FROM student WHERE sno = stu_num; -- 游标主体部分
    	-- 存储过程主体部分
     	PROCEDURE print_stu(stu_num number) 
     	IS
     		stu student%ROWTYPE; -- 声明变量
     		BEGIN
      		OPEN stu_cur(stu_num);  -- 打开游标
      		LOOP
        		FETCH stu_cur INTO stu; -- 游标记录当前行记录
        		EXIT WHEN stu_cur%NOTFOUND;
        		DBMS_OUTPUT.PUT_LIne('当前学生信息:学号=' || stu.sno || ',姓名=' || stu.sname || ', 年龄=' || stu.sage);
      		END LOOP;
      		CLOSE stu_cur; -- 关闭游标
     	END print_stu;
    END cur_pack;
    /
    

    使用如下语句调用如上的程序包,结果如下所示:

    SQL> exec cur_pack.print_stu(2);
    
    当前学生信息:学号=2,姓名=Kite, 年龄=32
    
    PL/SQL procedure successfully completed
    

    下面我们介绍在程序包中使用 REF 游标,示例如下所示:

    -- 创建包头
    create or replace package pack_ref is
    	type refcur is ref cursor; -- 此处只声明类型为参照游标的类型变量
    	procedure mycursor_use; -- 声明存储过程
    end pack_ref;
    /
    
    -- 创建包体
    create or replace package body pack_ref is
    procedure mycursor_use is
    	mycursor refcur; -- 此处声明类型为 refcur 的变量
    	stu_rec student%rowtype;
    begin
    	open mycursor for select * from student;
    	LOOP
    		fetch mycursor into stu_rec;
    		EXIT WHEN mycursor%NOTFOUND;
    		DBMS_OUTPUT.put_line('学号:' || stu_rec.sno || ',姓名:' || stu_rec.sname);
    	END LOOP;
    	close mycursor;
    end mycursor_use;
    end pack_ref;
    /
    

    使用如下语句调用如上的程序包,结果如下所示:

    SQL> exec pack_ref.mycursor_use();
    
    学号:7,姓名:张章
    学号:5,姓名:zhangsan
    学号:1,姓名:Tom
    学号:2,姓名:Kite
    学号:3,姓名:Bob
    学号:4,姓名:Mike
    
    PL/SQL procedure successfully completed
    

    4. 子程序和程序包的信息

    USER_OBJECTS 视图包含用户创建的子程序和程序包的信息,通过如下语句查询:

    SELECT object_name, object_type
    FROM USER_OBJECTS
    WHERE object_type IN ('PROCEDURE', 'FUNCTION', 'PACKAGE', 'PACKAGE BODY');
    

    查询结果如下所示:

    OBJECT_NAME                                                                      OBJECT_TYPE
    -------------------------------------------------------------------------------- -------------------
    PROC_OUT                                                                         PROCEDURE
    FIND_EMP                                                                         PROCEDURE
    PROC_EXCHANGE                                                                    PROCEDURE
    FUN_HELLO                                                                        FUNCTION
    STUD_RANKING                                                                     FUNCTION
    PACK1                                                                            PACKAGE BODY
    PACK1                                                                            PACKAGE
    CUR_PACK                                                                         PACKAGE BODY
    CUR_PACK                                                                         PACKAGE
    PACK_REF                                                                         PACKAGE
    PACK_REF                                                                         PACKAGE BODY
    

    USER_SOURCE 视图存储子程序和程序包的源代码,通过如下语句查询:

    SELECT text FROM USER_SOURCE WHERE NAME='PACK_REF';     ---注意大写
    

    查询结果如下所示:

    SQL> SELECT text FROM USER_SOURCE WHERE NAME='PACK_REF';     ---注意大写
    
    TEXT
    --------------------------------------------------------------------------------
    package pack_ref is
    	type refcur is ref cursor; -- 此处只声明类型为参照游标的类型变量
    	procedure mycursor_use; -- 声明存储过程
    end pack_ref;
    package body pack_ref is
    procedure mycursor_use is
    	mycursor refcur; -- 此处声明类型为 refcur 的变量
    	stu_rec student%rowtype;
    begin
    	open mycursor for select * from student;
    	LOOP
    		fetch mycursor into stu_rec;
    		EXIT WHEN mycursor%NOTFOUND;
    		DBMS_OUTPUT.put_line('学号:' || stu_rec.sno || ',姓名:' || stu_rec.sname);
    	END LOOP;
    	close mycursor;
    end mycursor_use;
    end pack_ref;
    

    5. 内置程序包

    oracle 内置有一些内置程序包,常用如下:

    程序包名称说明
    STANDARD和DBMS_STANDARD定义和扩展PL/SQL语言环境
    DBMS_LOB提供对 LOB数据类型进行操作的功能
    DBMS_OUTPUT处理PL/SQL块和子程序输出调试信息
    DBMS_RANDOM提供随机数生成器
    DBMS_SQL允许用户使用动态 SQL
    DBMS_XMLDOM用DOM模型读写XML类型的数据
    DBMS_XMLPARSERXML解析,处理XML文档内容和结构
    DBMS_XMLQUERY提供将数据转换为 XML 类型的功能
    DBMS_XSLPROCESSOR提供XSLT功能,转换XML文档
    UTL_FILE用 PL/SQL 程序来读写操作系统文本文件

    5.1 DBMS_OUTPUT

    该程序可以直接向控制台打印输出调试信息,类似于 Java 中的 System.out.println("xxxx");语句,这里不再过多说明。

    5.2 DBMS_RANDOM

    DBMS_RANDOM 包可用来生成随机整数。

    示例1:

    产生随机数

    SQL> SET SERVEROUTPUT ON
    SQL> DECLARE
       l_num   NUMBER;
       counter NUMBER;
    BEGIN
       counter:=1;
       WHILE counter <= 10
       LOOP
         l_num := DBMS_RANDOM.RANDOM;
         DBMS_OUTPUT.PUT_LINE(l_num);
         counter:=counter+1;
       END LOOP;
    END;
    /
    -- 输出结果
    -1844779820
    2090599204
    46142221
    1419758385
    -1286235225
    -2065024678
    -1259274836
    -57157868
    1933458772
    -1037520283
    

    示例2:

    产生一个100以内的随机正整数

    SELECT ABS(MOD(DBMS_RANDOM.RANDOM,100)) FROM DUAL; 
    

    示例3:

    使用VALUE函数返回一个大于等于0但是小于1的数

    SELECT DBMS_RANDOM.VALUE FROM DUAL; 
    

    示例4:

    返回 [0, 100) 之间的值

    对于指定范围内的整数,要加入参数low_value和high_value,并从结果中截取小数(最大值不能被作为可能的值)。所以对于0到99之间的小数,可以使用下面的代码 :

    SELECT  DBMS_RANDOM.VALUE(0, 100)  FROM  DUAL;  -- 返回区间内的小数
    
    SELECT TRUNC(DBMS_RANDOM.VALUE(0, 100)) FROM  DUAL; -- 返回区间内的整数
    

    示例5:

    产生随机序列

    STRING函数生成随机文本字符串,可以指定字符串的类型和所希望的长度:

    SELECT DBMS_RANDOM.STRING('A', 20) rand_seq FROM DUAL;  -- 生成长度为 20 的大小写混合的字符序列
    

    第一个参数存在如下类型的代码:

    ‘U’用来生成大写字符,‘L’用来生成小写字符,‘A’用来生成大小写混合的字符,’P’ 表示 字符串由任意可打印字符构成, ’X’ 表示字符串由大写字符和数字构成。

    输出结果示例如下:

    SQL> SELECT DBMS_RANDOM.STRING('A', 20) rand_seq FROM DUAL;  -- 生成长度为 20 的大小写混合的字符序列
    
    RAND_SEQ
    --------------------------------------------------------------------------------
    iFvSXfHZMfNYIfffXDlo
    

    5.3 UTL_FILE

    UTL_FILE 包可用于读写操作系统文本文件,操作文件的一般过程是打开、读或写、关闭。UTL_FILE 包指定文件路径依赖于 DIRECTORY 对象。

    首先需要登录管理员用户创建 DIRECTORY 对象,然后将该对象的读写权限授予指定用户,示例如下:

    SQL> CREATE DIRECTORY TEST_DIR AS 'F:\TEST';
    SQL> GRANT READ, WRITE ON DIRECTORY TEST_DIR TO SCOTT;
    

    接下来我们就可以使用 SCOTT 用户来使用 UTL_FILE 来操作文件,使用示例如下:

    DECLARE
      input_file   UTL_FILE.FILE_TYPE; -- 声明文件类型
      input_buffer VARCHAR2(4000);
    BEGIN
      input_file := UTL_FILE.FOPEN('TEST_DIR', 'demo.txt', 'r'); -- 以读的方式打开 TEST_DIR 目录对象下的 demo.txt 文件
      LOOP
        UTL_FILE.GET_LINE(input_file, input_buffer); -- 每次读取一行
        DBMS_OUTPUT.PUT_LINE(input_buffer);
      END LOOP;
      UTL_FILE.FCLOSE(input_file); -- 关闭文件
    EXCEPTION
      WHEN NO_DATA_FOUND THEN
        DBMS_OUTPUT.PUT_LINE('------------------'); -- 读取到没有数据时打印
    END;
    /
    

    5.4 DBMS_JOB

    DBMS_JOB 可以创建定时任务调度程序,下面我们就简单的来使用 DBMS_JOB 程序包,关于更多的使用方法可以查阅官方文档。

    1. 首先创建测试表:
    create table a(a date);
    
    1. 创建一个自定义过程:
    create or replace procedure test as
    begin
    	insert into a values(sysdate);
    end;
    /
    
    1. 创建一个定时任务 JOB:
    variable job1 number;
    begin
    	-- test; 表示调用的存储过程(需要分号),并将调用的结果返回给 job1 变量, : 指明 job1 是一个变量
    	-- sysdate 参数是表示什么时候提交这个 job,这里我们使用当前时间
    	-- 最后一个参数表示每天1440分钟,即一分钟运行test过程一次
    	dbms_job.submit(:job1,'test;', sysdate, 'sysdate + 1 / 1440');
    end;
    /
    
    1. 运行 job:
    begin
    	dbms_job.run(:job1);
    end;
    /
    
    1. 检查结果,每隔一分钟 a 表就会插入一条记录:
    SQL> select to_char(a,'yyyy/mm/dd hh24:mi:ss') 时间 from a;
    
    时间
    -------------------
    2020/11/07 11:37:45
    2020/11/07 11:38:45
    
    1. 删除JOB:
    begin
    	dbms_job.remove(:job1);
    end;
    /
    
    展开全文
  • Oracle7 子程序和程序包 回顾 游标用于处理查询结果集中的数据 游标类型有:隐式游标、显式游标和 REF 游标 隐式游标由 PL/SQL 自动定义、打开和关闭 显式游标用于处理返回多行的查询 显式游标可以删除和更新活动...
  • 一、用户与模式用户:对数据库的访问,需要以适当用户身份通过验证,并具有相关权限来完成一系列动作SYS用户,缺省始终创建,且未被锁定,拥有数据字典及其关联的所有对象SYSTEM用户,缺省始终创建,且未被锁定,...
  • 本文主要向大家介绍了Oracle数据库之Oracle的用户权限及其管理操作,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助。权限执行特定命令或访问数据库对象的权利Oracle的用户权限分两种:1.系统权限:...
  • 1 ORACLE数据库安全策略建立系统级的安全保证系统级特权是通过授予用户系统级的权利来实现,系统级的权利(系统特权)包括:建立表空间、建立用户、修改用户的权利、删除用户等。系统特权可授予用户,也...
  • ---------------------|权限定义解释---------------------|一级权限|为其他用户授权级权限|二级权限oracle内部文件管理级权限|三级权限|会话,角色,用户级权限...
  • Oracle 第7章 子程序、程序包 Oracle 第8章 触发器、内置程序包 1、技术目标 应用触发器 使用内置程序包 2、什么是触发器 触发器是当特定事件出现时自动执行的存储过程 特定事件可以是执行更新的DML...
  • oracle权限

    2017-09-06 10:28:46
    这些权限可以授予给用户、特殊用户public或角色,如果授予一个权限给特殊用户"Public"(用户public是oracle预定义的,每个用户享有这个用户享有的权限),那么就意味作将该权限授予了该数据库的所有用户。 对管理...
  • 子程序和程序包 总结: 子程序是命名的PL/SQL块,可带参数并可在需要时随时调用。 PL/SQL有两种类型的子程序,即过程和函数。 过程用于执行特定的任务,函数用于执行任务并返回值。 程序包是对相关类型、变量、...
  • oracle 权限角色

    2014-09-24 10:41:45
    权限允许用户访问属于其它用户的对象或执行程序ORACLE系统提供三种权限:  Object 对象级  System 系统级  Role 角色级  这些权限可以授予给用户、特殊用户public或角色,如果授予一个权限给特殊...
  • Oracle权限管理详解

    2020-02-21 10:29:50
    这些权限可以授予给用户、特殊用户public或角色,如果授予一个权限给特殊用户"Public"(用户public是oracle预定义的,每个用户享有这个用户享有的权限),那么就意味作将该权限授予了该数据库的所有用户。 对管理权限...
  • 这里将介绍Oracle修改用户权限的实现过程,包括一些权限管理方面的东西。希望通过本文能对大家...2. 1 ORACLE数据库安全策略建立系统级的安全保证系统级特权是通过授予用户系统级的权利来实现,系统级的权利(系统特...
  • Oracle数据库提供了一组视图 - 统称为数据字典,能够使用SQL 和 PL / SQL语言获取对PL/SQL代码的... Oracle数据库仅授予视图的SELECT访问权限。  大多数数据字典视图有三个版本:  USER视图:有关您所连接...
  • 程序包是对相关类型、变量、常量、游标、异常、过程和函数的封装。程序包由包规范和包主体两部分组成。包规范是包的接口,包含公用对象及其类型。包主体实现包规范中的游标和子程序,包主体中的声明仅限于在包内使用...
  • 查看某个用户在某个对象的权限,可以查dba_tab_privs 或者user_tab_privs   如下:某普通用户登陆,查自己的角色 SQL> select * from user_role_privs;   查自己拥有哪些系统权限 ...
  • Oracle权限分为系统权限和数据对象权限,共一百多种,如果单独对用户授权,很囧,有一些用户需要的权限是相同的,就把这些用户归为同一类——某种角色,通过设立一些有预定权限的角色简化和明确授权操作,角色...
  • oracle 用户创建权限设置   权限权限和同义词一般要一起设置,设置同义词后,查其他用户的表就不需要写其他用户的用户名。因此 在 user1 下 有表 table1,现在 user2 要使用 table1 1.设权限 :grant ...
  • Oracle 权限管理

    2019-07-17 16:22:08
    这些权限可以授予给用户、特殊用户public或角色,如果授予一个权限给特殊用户"Public"(用户public是oracle预定义的,每个用户享有这个用户享有的权限),那么就意味作将该权限授予了该数据库的所有用户。 对管理权限...
  • 过程是执行某些操作的子程序,它是执行特定任务的模块,它可以被赋予参数,存储在数据库中。以下代码create or replace proceduremyproce(employeeid number)as empid number(8); firstname varchar2(20); ...
  • Oracle复习(六)权限管理 用户管理; Oracle数据库初始用户: SYS:数据库管理员 SYSTEM:一般管理员无启动和关闭数据库权限,做辅助的功能 SCOTT:普通用户,用于测试网络连接的用户 PUBLIC:实质上一...
  • Oracle的对象权限、角色权限、系统权限 一、用户与模式 用户:对数据库的访问,需要以适当用户身份通过验证,并具有相关权限来...
  • ORACLE在用户及权限管理上有许多新的概念和特性。 & 说明: 对用户及权限的管理需要进入SQL*Plus交互工具。每一个SQL语句后要以分号“;”结束。退出交互工具命令为:quit SQL命令语句及可选项不区分...
  • Oracle 权限

    2008-09-24 13:55:00
    权限允许用户访问属于其它用户的对象或执行程序ORACLE系统提供三种权限:  Object 对象级  System 系统级  Role 角色级  这些权限可以授予给用户、特殊用户public或角色,如果授予一个权限给特殊用户...
  •   转载于:... 程序包是对相关类型、变量、常量、游标、异常、过程和函数的封装。 程序包由包规范和包主体两部分组成。 包规范是包的接口
  • 转载:http://hi.baidu.com/sooapple/item/aa03893ff397530bcfb9fe72 子程序和程序包 ...子程序是命名的PL/SQL块,可带参数并可在需要时随时调用。...程序包是对相关类型、变量、常量、游标、异常

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,866
精华内容 3,946
关键字:

oracle授予创建程序包权限