案例说明:

在KingbaseES V8R3执行sys_dump时出现“ERROR: permission denied for relation SYS_MAC_POLICY_ENFORCEMENT”故障,此前做过一些安全相关的配置,比如修改syssao和syssso用户口令等操作。

适用版本:

KingbaseES V8R3

案例复现:

1、查看sys_authid视图

TEST=# select * from sys_authid ;
ROLNAME | ROLSUPER | ROLUSERTYPE | ROLINHERIT | ROLCREATEROLE | ROLCREATEDB | ROLCANLOGIN | ROLREPLICATION | ROLBYPASSRLS | ROLCONNLIMIT | ROLPASSWORD | ROLVALIDUNTIL | PWDEXPIRETIME
----------------------+----------+-------------+------------+---------------+-------------+-------------+----------------+--------------+--------------+-------------------------------------+---------------+---------------
SYS_SIGNAL_BACKEND | f | N | t | f | f | f | f | f | -1 | | |
SUPERMANAGER_V8ADMIN | t | D | t | t | t | t | t | t | -1 | md5f7902af5f3f7cdcad02b5ca09320d102 | |
SYSSSO | f | S | t | f | f | t | f | f | -1 | md506de7a576af7f2791face19665f08a10 | |
SYSSAO | f | A | t | f | f | t | f | f | -1 | md5ce2668ef745c2a09d32010b185466e91 | |
TOM | f | N | t | f | f | t | f | f | -1 | md5a6b0d86ccb61b5cee406b28da51b3aa4 | |
SYSTEM | t | D | t | t | t | t | t | t | -1 | md53afebd0fba6df9fc2cf82c0b09926bcc | |
NCSOAYC | f | N | t | f | f | t | f | f | -1 | md5c579e0960f7d03228db41a49f45f9713 | |
(7 rows)

=如下所示:默认syssso用户的rolusertype的字段值为‘S’。=

2、更新syssso的rolusertype字段

TEST=# update sys_authid set ROLUSERTYPE='N' where  ROLNAME='SYSSSO';
UPDATE 1 TEST=# select * from sys_authid where rolname='SYSSSO';
ROLNAME | ROLSUPER | ROLUSERTYPE | ROLINHERIT | ROLCREATEROLE | ROLCREATEDB | ROLCANLOGIN | ROLREPLICATION | ROLBYPASSRLS | ROLC
ONNLIMIT | ROLPASSWORD | ROLVALIDUNTIL | PWDEXPIRETIME
---------+----------+-------------+------------+---------------+-------------+-------------+----------------+--------------+-----
---------+-------------------------------------+---------------+---------------
SYSSSO | f | N | t | f | f | t | f | f |
-1 | md506de7a576af7f2791face19665f08a10 | |
(1 row)

3、执行sys_dump备份

[kingbase@node101 bin]$ ./sys_dump -U SYSTEM -W 123456 -d PROD >prod.sql
sys_dump: [archiver (db)] query failed: ERROR: permission denied for relation SYS_MAC_POLICY_ENFORCEMENT
sys_dump: [archiver (db)] query was: select c.oid from SYS_CATALOG.sys_namespace n JOIN SYS_CATALOG.sys_class c ON (n.oid=c.relnamespace) JOIN SYS_CATALOG.sys_mac_table_policies p ON (n.nspname = p.schema_name and c.relname = p.table_name)

=如下所示,sys_dump备份出现权限错误。=

4、故障解决

系统表sys_authid:
sys_authid 包含关于数据库授权标识符(角色)的信息。角色把“用户”和“组”的概念包含在内。一个用户实际上就是一个 rolcanlogin 标志被设置的角色。任何角色(不管 rolcanlogin 设置与否)都能够把其他角色作为成员,参见 sys_auth_members 。
由于这个目录包含口令,它不能是公共可读的。 sys_roles 是在 sys_authid 上的一个公共可读视图,它隐去了口令域。
用户的权限和角色 包含关于用户和权限管理的详细信息。
由于用户标识符是集簇范围的, sys_authid 在一个集簇的所有数据库之间共享:在一个集簇中只有一份 sys_authid 拷贝,而不是每个数据库一份。

1)更新rolusertype字段

TEST=# UPDATE SYS_AUTHID SET ROLUSERTYPE='S' where rolname='SYSSSO';
UPDATE 1 TEST=# select * from sys_authid where rolname='SYSSSO';
ROLNAME | ROLSUPER | ROLUSERTYPE | ROLINHERIT | ROLCREATEROLE | ROLCREATEDB | ROLCANLOGIN | ROLREPLICATION | ROLBYPASSRLS | ROLCONNLIMIT | ROLPASSWORD | ROLVALIDUNTIL | PWDEXPIRETIME
---------+----------+-------------+------------+---------------+-------------+-------------+----------------+--------------+--------------+-------------------------------------+---------------+---------------
SYSSSO | f | S | t | f | f | t | f | f | -1 | md506de7a576af7f2791face19665f08a10 | |
(1 row)

2)执行备份

[kingbase@node101 bin]$ ./sys_dump -U SYSTEM -W 123456 -d PROD -t public.TB1 >~/prod_tb1.sql

[kingbase@node101 bin]$ more ~/prod_tb1.sql
--
-- Kingbase database dump
-- -- Dumped from database version V008R003C002B0290
-- Dumped by sys_dump version V008R003C002B0290 SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT sys_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET client_min_messages = warning;
SET row_security = off; SET default_tablespace = ''; SET default_with_oids = false; --
-- Name: TB1; Type: TABLE; Schema: PUBLIC; Owner: SYSTEM
-- CREATE TABLE "PUBLIC"."TB1" (
"ID" INTEGER,
"A_DATE" DATE,
"B_TM" TIMESTAMP WITHOUT TIME ZONE
);
....... ---如上所示,执行sys_dump备份成功。

5、总结

系统表 sys_authid 包含关于数据库授权标识符(角色)的信息。在对syssao、syssso用户执行相关操作时,字段会被更新,当出现此故障信息时,DBA可以按照以上的方法解决。

KingbaseES V8R3 运维案例 -- sys_dump备份故障“SYS_MAC_POLICY_ENFORCEMENT”的更多相关文章

  1. KingbaseES V8R3集群运维案例之---用户自定义表空间管理

    ​案例说明: KingbaseES 数据库支持用户自定义表空间的创建,并建议表空间的文件存储路径配置到数据库的data目录之外.本案例复现了,当用户自定义表空间存储路径配置到data下时,出现的故障问 ...

  2. KingbaseES V8R3集群运维案例之---kingbase_monitor.sh启动”two master“案例

    案例说明: KingbaseES V8R3集群,执行kingbase_monitor.sh启动集群,出现"two master"节点的故障,启动集群失败:通过手工sys_ctl启动 ...

  3. KingbaseES V8R3集群运维案例之---主库系统down failover切换过程分析

    ​ 案例说明: KingbaseES V8R3集群failover时两个cluster都会触发,但只有一个cluster会调用脚本去执行真正的切换流程,另一个有对应的打印,但不会调用脚本,只是走相关的 ...

  4. KingbaseES V8R3集群运维案例之---cluster.log ERROR: md5 authentication failed

    案例说明: 在KingbaseES V8R3集群的cluster.log日志中,经常会出现"ERROR: md5 authentication failed:DETAIL: password ...

  5. 运维案例 | Exchange2010数据库损坏的紧急修复思路

    ​​关注嘉为科技,获取运维新知 Exchange后端数据库故障,一般都会是比较严重的紧急故障,因为这会直接影响到大面积用户的正常使用,而且涉及到用户数据.一旦遇到这种级别的故障,管理员往往都是在非常紧 ...

  6. KingbaseES V8R6集群管理运维案例之---repmgr standby switchover故障

    案例说明: 在KingbaseES V8R6集群备库执行"repmgr standby switchover"时,切换失败,并且在执行过程中,伴随着"repmr stan ...

  7. KingbaseES V8R6集群运维案例之---repmgr standby promote应用案例

    案例说明: 在容灾环境中,跨区域部署的异地备节点不会自主提升为主节点,在主节点发生故障或者人为需要切换时需要手动执行切换操作.若主节点已经失效,希望将异地备机提升为主节点. $bin/repmgr s ...

  8. SQL SERVER 运维日记-数据库备份

    概述 昨天下午突然看到,<炉石传说>游戏数据库发生宕机并引发数据丢失事故的新闻.刚看到时,满满的不可思议.暴雪啊,网易啊. 都是很牛叉的公司.他们出的游戏我都是很喜欢的. 当我看到,第一时 ...

  9. MySQL运维之---mysqldump备份、select...into outfile、mysql -e 等工具的使用

    1.mysqldump备份一个数据库 mysqldump命令备份一个数据库的基本语法: mysqldump -u user -p pwd dbname > Backup.sql 我们来讲解一下备 ...

  10. [自动运维]oracle自动备份

    数据是应用的核心部分,程序坏了换台机器重新发布就可以,但数据一旦丢失,造成的损失将不可挽回,程序发布到生产后,数据的备份便显得尤为重要,由于不一定所有的服务均有资金完成高级的备份如RAC和DG,在我们 ...

随机推荐

  1. 使用virtualenv新建django项目

    # 安装virtualenv pip install virtualenv # 创建虚拟环境 virtualenv venv # 进入虚拟环境 venv\Scripts\activate # 安装dj ...

  2. CSS加JS实现网页返回顶部功能

    最近在设计自己的博客,前端页面在内容很多的时候往下拖动会有滚动条.通常我们都需要一个返回顶部的功能来实现快速来到网页顶部.当然实现方式不止一种,这里我采用的最实用的一种.使用CSS+Jquery方式 ...

  3. 跨越千年医学对话:用AI技术解锁中医古籍知识,构建能够精准问答的智能语言模型,成就专业级古籍解读助手(LLAMA)

    跨越千年医学对话:用AI技术解锁中医古籍知识,构建能够精准问答的智能语言模型,成就专业级古籍解读助手(LLAMA) 介绍:首先在 Ziya-LLaMA-13B-V1基线模型的基础上加入中医教材.中医各 ...

  4. Java Http客户端选型

    JDK自带 HTTPURLConnect:功能单一 Apache HttpClient https://hc.apache.org/index.html 是一个比较古老的HTTP框架,使用非常普遍. ...

  5. Excelize 开源基础发布 2.8.1 版本,2024 年首个更新

    Excelize 是 Go 语言编写的用于操作电子表格办公文档的开源基础库,基于 ISO/IEC 29500.ECMA-376 国际标准.可以使用它来读取.写入由 Microsoft Excel.WP ...

  6. dd命令创建文件

    dd if=... of=... bs=... count=... if表示输入文件,of表示输出文件,bs默认指定了以字节为单位的块大小(单位有字节c,字w,块B,千字节m,兆字节m,吉字节G),c ...

  7. 异常处理try...except...finally---day26

    1.认识异常处理 # ### 认识异常处理 #IndexError 索引超出序列范围 #lst = [1,2,3,4] #print(lst[10]) #KeyError 字典中查找一个不存在的关键字 ...

  8. Retrofit 的基本用法

    一.添加依赖和网络权限 添加依赖 implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup ...

  9. mysql数据库jar包下载

    1.mysql-connector-java-8.0.16.jar驱动包 链接:https://pan.baidu.com/s/1G1SfPP895wU6YvTOAcTxhA提取码:7r43 2.my ...

  10. 08-Redis系列之-Redis布隆过滤器,MySQL主从,Django读写分离

    Redis实现布隆过滤器 前言 布隆过滤器使用场景 比如有如下几个需求: 原本有10亿个号码,现在又来了10万个号码,要快速准确判断这10万个号码是否在10亿个号码库中? 解决办法一:将10亿个号码存 ...