首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一个关于Definer和Invoker的权限问题

Tom的书《Expert one-on-one Oracle》中单独有一章节,介绍的就是,调用者和定义者, ?...定义者(Definer)-指的是编译存储对象的拥有者,包括包、存储过程、函数、触发器和视图。 调用者(Invoker)-指当前会话中生效的schema,不一定就是当前登录的用户。...从Oracle 8i开始,引入了invoker rights-调用者,允许包、存储过程、函数、触发器和视图这些对象的权限,以运行时的调用者为准。...引用Tom的实验,首先user1用户,创建如下两个存储过程,分为定义者权限,和调用者权限,并将这两个存储过程,执行权限授予user2, create or replace procedure definer_proc...); END; 从do_get函数定义,可以看出,这是通用函数,其中参数PUBLIC_FUNC,接收的是'GET_DDL'参数, PROCEDURE DO_GET ( OBJECT_TYPE IN

90620

hhdb数据库介绍(9-19)

是否支持备注DECODE支持环境与标识符函数Oracle数据库函数HHDB Server数据库是否支持备注SYS_GUID支持仅DDL操作,要求计算节点和存储节点均为8.0及以上版本USERENV限制支仅参数为...使用此功能需开启Oracle语法解析,仅当数据库用户开启了“该用户执行SQL时是否按Oracle语法优先解析”开关,或打开参数“enableOracleFunction”才支持此同义词语法的功能。...此时需要执行上述语句将同义词状态变为VALID,才能正常查询调用。注意计算节点支持此语句的执行通过作为Oracle的语法兼容,但是无实际意义。...此处填写或不填写FORCE均无意义,仅作为对Oracle的语法兼容。...views返回已创建的视图信息hotdb_global_variables返回计算节点参数信息为兼容版本高于8.0的存储节点,对于8.0新增的表做如下特殊处理:表名称特殊处理check_constraints

5720
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【迁移】使用XTTS-V3(DBMS_FILE_TRANSFER)数据迁移

    --目标库创建的DBLINK backupformat=/home/oracle/xtts/bakincr --源端用于存放增量备份的路径 stageondest=/home/oracle/xtts.../* 10.0.14.XXX:/home/oracle/xtts/ 3.3 准备阶段 在这个阶段,表空间数据文件会从源库传输到目标库,并且会做一个自动的字节格式的转换。...在目标数据文件一致后,将执行一次普通的传输表空间的步骤,从源库导出元数据对象并导入目标库。在此阶段结束之前,源库只能通过 read only 方式访问数据。...'schema2') ; 源库执行生成语句,编辑一个static.sql文件在目标库执行,此处是按表统计也可选择按schema统计GATHER_SCHEMA_STATS; @/home/oracle/...status = 'INVALID' and owner in('schema1','schema2'); select owner,object_name,object_type,status from

    2.3K20

    SqlAlchemy 2.0 中文文档(五十一)

    此调用的目的是为了为作为参数传递的 Python 值绑定到 SQL 语句的数据类型。...cx_Oracle 和 oracledb 的现代版本经过优化,可以将这些数据类型作为单个缓冲区传递。因此,SQLAlchemy 默认使用这些新型处理程序。...此调用的目的是为了为作为参数传递的 Python 值绑定到 SQL 语句的数据类型。...现代版本的 cx_Oracle 和 oracledb 都经过优化,以便将这些数据类型作为单个缓冲区传递。因此,默认情况下 SQLAlchemy 使用这些较新的类型处理程序。...要禁用较新类型处理程序的使用,并将 LOB 对象作为具有read()方法的经典缓冲对象传递,可以将参数auto_convert_lobs=False传递给create_engine(),这仅在整个引擎范围内生效

    32110

    使用expdp(非本地)远程导出数据

    expdp/impd介绍: 从10g开始,除了传统的exp/imp导入导出工具外,Oracle提供了expdp/impdp的数据泵导入导出工具。...从官方文档上看(http://docs.oracle.com/cd/E11882_01/server.112/e22490/dp_overview.htm#SUTIL802),Oracle数据泵由三部分组成...export/import命令,并且可以在命令行中添加参数,这些参数可以导入导出数据库中的数据和元数据或其中的一部分。...总结: 数据泵工具expdp/impdp工具,执行时其实是调用的两个PL/SQL包(一个对应数据,一个对应元数据),读取和写入的dump文件存储于服务器上directory目录对应的文件夹中。...注意,这里有个小问题值得注意,tables=depkf15.t_cp,如果待导出表和登录用户不同,则这里需要添加导出的对象schema(用户),否则会报错。 4. 执行导出命令。

    2.2K20

    POSTGRESQL 到底怎么访问同instance 的库--

    实际上SQL SERVER 本身是多个数据库和schema 并存的数据库, POSTGRESQL 也是....下多个数据库能互访的方便,当然不是坏事,但你见过一个INSTANCE 下挂了N 个数据库,然后库和库互相夸库查询, 等到拆库的时候有多麻烦, 另外从现在软件开发的角度来说,如果还算是一个项目的话, 这样的跨库访问的方式应该被减少...dblink_disconnect(); 3 判断当前BDLINK 是否在使用中 dblink_is_busy 另外DBLINK 还支持异步调用,将语句发送给remote 的数据库再等待后将信息取回...schema_name 'public', table_name 'actor'); 查询和在本地库是没有区别的,这是第二种解决本地库中两个数据库中的表进行跨库访问的方式....,直接将目的表映射到本地,访问的方式和访问本地库的表是一样的.

    1.8K20

    使用DataPump迁移非CDB到CDB数据库

    那就是将之前的N多非CDB数据库整合到CDB,原来的数据库将作为CDB数据库下一个PDB容器,各个PDB之间也可以通过快速dblink实现交互。...一、几种常用的迁移方法 image.png 如上图所示,通常有3种方式来实现将非CDB迁移到CDB数据库 注:文中所描述的迁移到CDB,指的是非CDB迁移之后将作为目标CDB的一个PDB数据库...,但是配置复杂 二、演示使用DataPump迁移非CDB到CDB 演示说明: 1、以下演示将Oracle 11g一个schema soe作为一个pdb导入到Oracle 12c 2、在导入pdb前,做了...schema映射(soe到report_usr),如果是正式迁移应创建原账号,导入完成后并将其密码变更为原密码 3、导入完成后应检查所有迁移期间涉及到的对象,如表,视图,存储过程,包,dblink,无效对象等等...=('/app/oracle/ora12c/oradata/cdb1/pdbseed', 4 '/app/oracle/ora12c/oradata/cdb1/reportdb'); --将数据库置为

    74620

    【DB笔试面试520】在Oracle中,Oracle的DBLINK是什么?

    ♣ 题目部分 在Oracle中,Oracle的DBLINK是什么?...其实,DBLINK和数据库中的VIEW差不多,创建DBLINK的时候需要知道待读取数据库的IP地址、ORACLE_SID以及数据库用户名和密码。...DBLINK的分类如下表所示: 类型 用户 描述 Private 创建database link的user拥有该database link 在本地数据库的特定的schema下建立的database link...= BJLHR) ) )'; 其中,HOST为数据库的IP地址,SERVICE_NAME为数据库的SID,其实,两种方法配置DBLINK是差不多的,第二种方法不受本地服务的影响。...数据库全局名称可以用以下命令查出: SELECT * FROM GLOBAL_NAME; 用以下语句来修改参数值: ALTER SYSTEM SET GLOBAL_NAMES=FALSE/TRUE; 当数据库参数

    1.8K20

    Oracle异构平台迁移利器之XTTS(使用rman方式)

    2.2、全量迁移 2.2.1、源端和目标端都需要配置XTTS脚本 2.2.2、源端调用 xttdriver.pl -p做迁移准备 2.2.3、将源端的数据文件副本和rmanconvert.cmd...、在目标库创建业务用户 2.5.2、导入xtts的元数据 2.5.3、导入存储过程、触发器、函数、包、视图、序列 2.5.4、导入公共同义词和dblink等其它对象 2.6、...在U2L如火如荼的今天,通过XTTS快捷、高效、平稳、安全的将Oracle数据库“小型机+集中式存储”环境迁移至“X86架构平台+分布式存储”已然成为一大神技。...2.2.3、将源端的数据文件副本和rmanconvert.cmd传到目标端 将数据文件副本和rmanconvert.cmd文件拷贝到目标端。...这里传递增量数据的时候,还需要将源端/home/oracle/scripts/目录下的 xttplan.txt、 tsbkupmap.txt和incrbackups.txt文件都传输到目标端。

    5.7K30

    hhdb数据库介绍(9-12)

    使用方法alter修改分片字段语法如下:alter table table_name change shard column new_column;例如将源表sbtest1分片字段id修改为k,执行:mysql...在使用Oracle的DBLINK时,需要开启Oracle语法解析。此外,查询Oracle内的表时,对于需要区分大小写的表,需要在表名上加双引号;若不加双引号,均默认以大写进行存储和匹配。...外部文件数据DBLINK操作当使用DBLINK与外部文件创建链接时,计算节点支持对外部文件数据的查询,支持与内部表关联查询,支持更新与删除内部表join外部文件,此时外部文件数据仅作为SQL语句的执行条件...外部文件DBLINK的语法格式如下:@link_name-- :填写存放在计算节点对应目录下,需要执行操作的CSV文件名;-- link_name:填写创建DBLINK时配置的link_name...WHERE file1@linkname1.id=1;-- 通过连接条件,将内部表table0中与外部文件file1通过名为linkname1的DBLINK连接的数据进行修改;-- 将内部表table0

    6510

    plsql编程---过程、函数、包

    4.过程 过程用于执行特定的操作,当建立过程时,既可以指定输入参数(in),也可以指定输出参数(out), 通过在过程中使用输入参数,可以将数据传递到执行部分; 通过使用输出参数,可以将执行部分的数据传递到应用环境...--只有输入参数的存储过程 create or replace procedure proc01(eno number) --in 输入参数 out输出参数 as begin update emp...; 在oracle中调用存储过程: 第一种:call proc01(7654); 第二种:在plsql块中调用 SQL> begin 3 proc01(7654); 5 end;...; 在oracle中调用存储过程: SQL> set serveroutput on; SQL> declare money number; 2 begin 3 proc02(7654...PKG_SAL.ANNUAL_INCOME('XIAOMIN ------------------------------ 60000 5.将函数作为另一个子程序的参数

    56510

    一文详解TDSQL PG版Oracle兼容性实践

    比如用户在Oracle中创建存储过程,如果不需要输入参数、输出参数,则无需括号,但在PostgreSQL中则必须写括号,TDSQL PG版对此进行兼容,业务人员可根据需求选择写或不写。...存储过程中的输入、输出参数,Oracle支持IN、OUT和INOUT三种类型,但PostgreSQL不支持OUT,TDSQL PG版对此做了兼容,完整支持IN、OUT和INOUT三种类型。...在调用方面,Oracle存储过程的调用支持三种形式:call后加存储过程名称、exec后加存储过程名称、直接调用存储过程名称,而PostgreSQL中只能使用call进行调用,TDSQL PG版对此进行兼容改造...3.4 存储过程/函数扩展语法能力 为全面兼容oracle,TDSQL PG版的存储过程和函数在创建调用语法上也进行了适配,除前面提到的函数体不需要$$包围、以/结尾、空参数不需要括号等细节外,TDSQL...具体的实现方式是:在创建package时后台会创建一个对应的schema和里面的函数(函数内容为空),创建包体的时候指定函数内容时再去alter function,包里的变量都放在schema下面,可参考

    2.2K20

    MariaDBMySQL存储过程和函数学习心得

    IN参数类型表示将调用者给定的值传递给存储过程。存储过程可能会修改这个值,但是对于调用者来说,在存储过程返回结果时,所做的修改是不可见的。 OUT参数类型表示将存储过程的返回值传递给调用者。...要指定其他类型的参数,可以在参数名前面使用关键字OUT或INOUT。 (1).IN参数类型。 IN参数类型是指调用者将某个值传递给存储过程,存储过程借用这个值来完成某些操作。...OUT参数类型是指存储过程将某个值通过该参数返回给调用者。因此调用者必须传递一个用户变量给存储过程,用来记录存储过程OUT参数的值。...INOUT参数类型指的是调用者和存储过程之间传递的内容可以互相赋值。...从information_schema.routines中查看存储过程和函数的信息,这个比show status更详细一点。

    93530

    Oracle 19c 新特性:ADG的自动DML重定向增强读写分离

    在前面的文章《Oracle 19c 十大新特性一览》中,我们曾经提到 Oracle 19c的一个重要增强,就是ADG的自动DML转发: ?...这个新特性的功能是:将偶然发送到ADG上的DML操作,自动转发到主库执行,然后通过主库日志传递到备库实时应用,在保证了ACID的前提下,大大增强了备库的实用性,这被称为 DML Redirection...在两个版本中,唯一的差别是: 在 18c 中,这个特性是通过隐含参数 _enable_proxy_adg_redirect 的调整来启用这个特性,这表示此特性是趋向内部的; 在 19c 中,显式参数 ADG_REDIRECT_DML...参数控制这个特性的开关,说明这个特性变成外部和成熟的; 来看一下测试,体验一下这个新特性的便利性。...这些变化告诉我们的是:时移世易,当新的版本和特性被引入时,一定会带来新的变化,如果不能及时了解这些变化,在享受便利的情况下,就可能面临意外的风险。

    1.4K20
    领券