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的成员方法,不会报权限错误。

相关推荐
Flying pigs~~8 小时前
RAG智慧问答项目
数据库·人工智能·缓存·微调·知识库·rag
misL NITL9 小时前
mysql之如何获知版本
数据库·mysql
许彰午9 小时前
CacheSQL(二):主从复制——OpLog 环形缓冲区与故障自动恢复
java·数据库·缓存
2401_8323655210 小时前
JavaScript中rest参数(...args)取代arguments的优势
jvm·数据库·python
2301_7796224110 小时前
Go语言怎么用信号量控制并发_Go语言semaphore信号量教程【入门】
jvm·数据库·python
2301_7662834410 小时前
c++如何将控制台输出保存到文件_cout重定向到txt【详解】
jvm·数据库·python
北极的冰箱11 小时前
MySQL Ver 8.0.41 for macos14.7密码遗忘
数据库·mysql
XDH_CS11 小时前
MySQL 8.0 安装与 MySQL Workbench 使用全流程(超详细教程)
开发语言·数据库·mysql
treacle田12 小时前
达梦数据库-统计信息收集-记录
数据库·达梦数据库统计信息收集
审判长烧鸡12 小时前
PostgreSQL之索引/函数/触发器
数据库·postgresql·触发器·函数·索引