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

相关推荐
程序员大辉5 分钟前
免费的mysql链接工具HeidiSQL比Navicat好用
数据库·mysql
总有刁民想爱朕ha6 分钟前
银河麒麟v10服务器版Docker部署PostgreSQL 14教程
docker·postgresql·容器·银河麒麟服务器版v10
cui_win23 分钟前
Redis 生产环境命令管控规范
数据库·redis·缓存
【上下求索】25 分钟前
学习笔记096——Windows postgreSQL-18.1[压缩包版本]
windows·笔记·学习·postgresql
woshilys27 分钟前
oracle 和sql server 查询数据时锁的区别
数据库·oracle
if时光重来27 分钟前
kingbase数据库指定数据表自增id重置
数据库·python·sql
jingyucsdn30 分钟前
将postgresql结构和数据备份成sql语句
数据库·sql·postgresql
我科绝伦(Huanhuan Zhou)32 分钟前
Oracle等待事件:性能诊断与优化的核心指南
数据库·oracle
梦里不知身是客1135 分钟前
explain分析SQL语句分析sql语句的优劣
java·数据库·sql
程序员zgh36 分钟前
SOLID软件设计原则 解析
数据库