lightdb 普通用户拥有XMLTYPE类型的访问权限

文章目录

概述

在信创移植的SQL语句中,有来源于Oracle数据库的SQL语句。

在Oracle中存在getClobVal函数,这个函数是Oracle中sys.XMLType的成员方法。

因此在LightDB23.3版本中实现了TYPE支持定义成员方法并且在新定义的XMLType类型中实现getClobVal成员方法。

但是实际场景是普通用户需要默认有XMLType.getClobValue的执行权限,无需另外进行授权。对此 LightDB 23.3.02增量版本进行了支持。

示例

使用ltsql进行命令行

构建数据库

复制代码
create database test_oracle with lightdb_syntax_compatible_type  oracle;
\c test_oracle
select dbms_output.serveroutput(true);

构建用户

复制代码
create user u106761 with password 'Test01@123';

切换到普通用户

复制代码
set role u106761;

创建表

复制代码
CREATE TABLE xml_table (
    id NUMBER,
    xml_column XMLType
);
INSERT INTO xml_table (id, xml_column)
VALUES (1, XMLType('<root><name>John</name></root>'));

使用XMLType

复制代码
DECLARE
    v_clob CLOB;
BEGIN
    SELECT XMLType.getClobVal(xml_column) INTO v_clob FROM xml_table WHERE id = 1;
    DBMS_OUTPUT.PUT_LINE('CLOB value: ' || v_clob);
END;
/

CLOB value: <root><name>John</name></root>
DO

总结

普通用户可以正常调用XMLType的成员方法,不会报权限错误。

相关推荐
SelectDB9 小时前
让变更流出 Doris:Apache Doris 5.0 基于增量计算的 CDC 技术解析
数据库
这个DBA有点耶10 小时前
MCP隔离层+行级语义审计+输出校验:AI访问数据库的安全边界拆解
数据库·人工智能·ai编程
这个DBA有点耶11 小时前
从反向扫描O(n)到正向扫描O(1):降序索引的物理机制与混合排序匹配规则
数据库
2501_9339232512 小时前
解读Redis:单线程模型
数据库·redis·缓存
Tapdata13 小时前
被忽略的第三类上下文:Agent 进入真实业务后,还缺什么?
数据库·人工智能·架构
小科先生14 小时前
Java springboot调用数据库的基本流程
java·数据库·spring boot
星恒随风14 小时前
MySQL 从零入门(四):表的增删改查与基础查询详解
linux·服务器·数据库·笔记·mysql
Pniubi16 小时前
MySQL靠什么实现事务的?事务隔离级别有哪些?
java·数据库·mysql
数据库小学妹16 小时前
pgbouncer 事务池:prepared statement、临时表与会话状态
数据库·后端·postgresql
Lucifer三思而后行18 小时前
最近折腾了一下金仓数据库的备份恢复
数据库·备份恢复