当前位置: 首页 > news >正文

达梦数据库笔记--分权

前情提要

已知有三个账号toolhub_adm(管理权限)、toolhub_app(应用账号)、toolhub_spt(审计账号),各自有表空间(模式);

思路:

所有表导入到toolhub_adm,授权给toolhub_app(增删改查),再给toolhub_app创建访问toolhub_adm中表的别名

导入数据

登录toolhub_adm账号,执行sql文件,如:

-- 创建表(如有需要可指定模式,若不指定默认使用当前登录用户的模式)
CREATE TABLE toolhup_adm.table1 (id INT PRIMARY KEY,name VARCHAR(50),create_time DATETIME
);-- 表备注
COMMENT ON TABLE toolhup_adm.table1 IS '示例表:存储业务数据';-- 列备注
COMMENT ON COLUMN toolhup_adm.table1.id IS '主键ID';
COMMENT ON COLUMN toolhup_adm.table1.name IS '名称';
COMMENT ON COLUMN toolhup_adm.table1.create_time IS '创建时间';

授权(增删改查)

生成授权语句
-- 生成授权语句(当前用户为TOOLHUB_ADM时使用)
SELECT 'GRANT SELECT, INSERT, UPDATE, DELETE ON TOOLHUB_ADM.' || TABLE_NAME || ' TO TOOLHUB_APP;' 
FROM USER_TABLES; -- USER_TABLES仅显示当前用户(TOOLHUB_ADM)的表
执行授权语句

将生成的授权sql语句复制并执行,如:

GRANT SELECT, INSERT, UPDATE, DELETE ON TOOLHUB_ADM.TABLE1 TO TOOLHUB_APP;
GRANT SELECT, INSERT, UPDATE, DELETE ON TOOLHUB_ADM.TABLE2 TO TOOLHUB_APP;
...
验证授权结果

执行以下语句确认权限是否生效:

-- 查看 TOOLHUB_APP 拥有的 TOOLHUB_ADM 模式下的表权限
SELECT GRANTEE,       -- 被授权用户OWNER,         -- 表所属模式TABLE_NAME,    -- 表名PRIVILEGE      -- 拥有的权限
FROM DBA_TAB_PRIVS 
WHERE GRANTEE = 'TOOLHUB_APP' AND OWNER = 'TOOLHUB_ADM';

若查询结果包含 SELECTINSERTUPDATEDELETE 权限,则说明授权成功。

补充说明
  1. 未来新表授权:上述方法仅对已存在的表生效。若后续在 TOOLHUB_ADM 模式下新建表,需重新执行步骤 1-2 生成新表的授权语句。
  2. 大小写敏感:达梦默认将对象名(模式名、表名、用户名)转为大写,若实际对象名包含小写,需用双引号包裹(如 "ToolHub_ADM"),但建议统一使用大写以避免冲突。
  3. 权限回收:若需回收权限,可类似生成回收语句:
  4. SELECT 'REVOKE SELECT, INSERT, UPDATE, DELETE ON TOOLHUB_ADM.' || TABLE_NAME || ' FROM TOOLHUB_APP;' 
    FROM DBA_TABLES 
    WHERE OWNER = 'TOOLHUB_ADM';

创建同名(批量创建同义词)

生成创建语句
-- 生成创建同义词的语句:为 TOOLHUB_ADM 下的所有表创建同名同义词,归属 TOOLHUB_APP
SELECT 'CREATE SYNONYM TOOLHUB_APP.' || TABLE_NAME || ' FOR TOOLHUB_ADM.' || TABLE_NAME || ';' 
FROM USER_TABLES; -- USER_TABLES 显示当前用户(TOOLHUB_ADM)的所有表
 执行创建语句

将生成的授权sql语句复制并执行,如:

CREATE SYNONYM TOOLHUB_APP.TABLE1 FOR TOOLHUB_ADM.TABLE1;
CREATE SYNONYM TOOLHUB_APP.TABLE2 FOR TOOLHUB_ADM.TABLE2;
...
验证

创建同义词后,TOOLHUB_APP 登录后可直接用表名访问:

-- 直接访问同义词(实际指向 TOOLHUB_ADM.TABLE1)
SELECT * FROM TABLE1;
验证同义词是否生效
  1. 查看已创建的同义词:

    -- 用 TOOLHUB_ADM 或管理员账号查询
    SELECT SYNONYM_NAME, TABLE_OWNER, TABLE_NAME 
    FROM DBA_SYNONYMS 
    WHERE OWNER = 'TOOLHUB_APP';
    

    结果会显示 TOOLHUB_APP 下的同义词及其对应的 TOOLHUB_ADM 表。

  2. TOOLHUB_APP 直接访问表验证是否成功。

关键说明
  1. 权限要求:创建同义词需 TOOLHUB_ADM 拥有 CREATE ANY SYNONYM 权限,或由管理员执行创建语句(若 TOOLHUB_ADM 权限不足,需联系管理员协助)。
  2. 新表处理:若后续 TOOLHUB_ADM 新增表,需重复步骤 1-2 为新表创建同义词。
  3. 无冗余数据:同义词仅为 “别名”,不存储实际数据,所有操作仍指向 TOOLHUB_ADM 的原始表,避免数据不一致。

http://www.dtcms.com/a/541996.html

相关文章:

  • 网站建设php书籍免费制作微信小程序的网站
  • 潍城区住房和城乡建设局网站frontpage新建网站
  • 台州企业网站制作公司松江建设投资有限公司网站
  • 如何制作自己的网站教程自建国际网站做电商
  • 队列-概念【Queue1】
  • OCR用于Llamaindex与OCR运用的展望
  • DeepSeek-OCR MoE结构梳理(其它LLM原理类似)
  • 浙江建设银行网站多少钱算有钱
  • 青岛正规公司网站建设公司国内网如何看国外网站
  • 商城网站建设公司报价如何搜索公司所有的网站
  • 成绩查询和成绩分析发布工具搭建教程
  • 控制网站的大量访问连云港建设工程质量监督站网站
  • Visual Studio 2010 Ultimate 中文版安装教程(ISO文件安装步骤附安装包下载)​
  • 【前端高频面试题】深入理解 JavaScript 内存管理与闭包原理(附高分答题模板)
  • 样本熵和泊松指数的计算流程!!!
  • 在平台企业网站推广怎么做网站建设合同详细
  • C++运算符重载中的引用返回:链式操作的关键技巧
  • Python文件操作全解析:打开、关闭与读写实战
  • 服装 多语言 网站源码国外做鞋子的网站
  • Maven 项目模板
  • 安全可信网站网页设计师培训在哪里
  • 我的网站模板下载下面哪些不是网页制作工具
  • 西安优秀的集团门户网站建设公司wordpress页面默认模板
  • 怎么往网站添加视频网站建设 计入哪个科目
  • 做网站放网站广告南阳建设网站
  • 从 0 到 1 掌握 std::packaged_task:C++ 异步任务的 “隐形胶水“
  • 传统文化网站建设方案空间放两个网站
  • 品牌展示设计网站简洁类wordpress主题
  • 基于AI智能算法的装备结构可靠性分析与优化设计技术专题
  • 地平线J6的基础简介