KingbaseES V8R3 运维案例 -- sys_dump备份故障“SYS_MAC_POLICY_ENFORCEMENT”
案例说明:
在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”的更多相关文章
- KingbaseES V8R3集群运维案例之---用户自定义表空间管理
案例说明: KingbaseES 数据库支持用户自定义表空间的创建,并建议表空间的文件存储路径配置到数据库的data目录之外.本案例复现了,当用户自定义表空间存储路径配置到data下时,出现的故障问 ...
- KingbaseES V8R3集群运维案例之---kingbase_monitor.sh启动”two master“案例
案例说明: KingbaseES V8R3集群,执行kingbase_monitor.sh启动集群,出现"two master"节点的故障,启动集群失败:通过手工sys_ctl启动 ...
- KingbaseES V8R3集群运维案例之---主库系统down failover切换过程分析
案例说明: KingbaseES V8R3集群failover时两个cluster都会触发,但只有一个cluster会调用脚本去执行真正的切换流程,另一个有对应的打印,但不会调用脚本,只是走相关的 ...
- KingbaseES V8R3集群运维案例之---cluster.log ERROR: md5 authentication failed
案例说明: 在KingbaseES V8R3集群的cluster.log日志中,经常会出现"ERROR: md5 authentication failed:DETAIL: password ...
- 运维案例 | Exchange2010数据库损坏的紧急修复思路
关注嘉为科技,获取运维新知 Exchange后端数据库故障,一般都会是比较严重的紧急故障,因为这会直接影响到大面积用户的正常使用,而且涉及到用户数据.一旦遇到这种级别的故障,管理员往往都是在非常紧 ...
- KingbaseES V8R6集群管理运维案例之---repmgr standby switchover故障
案例说明: 在KingbaseES V8R6集群备库执行"repmgr standby switchover"时,切换失败,并且在执行过程中,伴随着"repmr stan ...
- KingbaseES V8R6集群运维案例之---repmgr standby promote应用案例
案例说明: 在容灾环境中,跨区域部署的异地备节点不会自主提升为主节点,在主节点发生故障或者人为需要切换时需要手动执行切换操作.若主节点已经失效,希望将异地备机提升为主节点. $bin/repmgr s ...
- SQL SERVER 运维日记-数据库备份
概述 昨天下午突然看到,<炉石传说>游戏数据库发生宕机并引发数据丢失事故的新闻.刚看到时,满满的不可思议.暴雪啊,网易啊. 都是很牛叉的公司.他们出的游戏我都是很喜欢的. 当我看到,第一时 ...
- MySQL运维之---mysqldump备份、select...into outfile、mysql -e 等工具的使用
1.mysqldump备份一个数据库 mysqldump命令备份一个数据库的基本语法: mysqldump -u user -p pwd dbname > Backup.sql 我们来讲解一下备 ...
- [自动运维]oracle自动备份
数据是应用的核心部分,程序坏了换台机器重新发布就可以,但数据一旦丢失,造成的损失将不可挽回,程序发布到生产后,数据的备份便显得尤为重要,由于不一定所有的服务均有资金完成高级的备份如RAC和DG,在我们 ...
随机推荐
- 【Android】使用AIDL实现进程间传递对象案例
1 前言 在 Android--使用AIDL实现进程间通讯简单案例 中介绍了使用 AIDL 在进程间传递字符串,对于8种基本数据类型( byte.short.int.long.float.doub ...
- Laravel入坑指南(2)——路由、控制器
接上一节,我们已经把Laravel有Hello World项目跑起来了. 现在各位小友最着急的,应该是想了解,我们怎么在"页面"echo一个自己的Hello World字符串. & ...
- VS2019 配置 Qt 库
如标题所说,在 VS 编译器中调用 Qt 库 首先安装一个适合 VS 的 Qt 版本 不知道怎么安装的,可以参考:Visual Studio+Qt配置开发环境 Qt 安装之后,需要在 VS 编译器中 ...
- 程序员应具备的PS基本技能(三):程序员使用PSD源文件切图
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- 解析Spring中的循环依赖问题:初探三级缓存
什么是循环依赖? 这个情况很简单,即A对象依赖B对象,同时B对象也依赖A对象,让我们来简单看一下. // A依赖了B class A{ public B b; } // B依赖了A class B{ ...
- STL-unordered_map,unordered_set模拟实现
unordered_set #pragma once #include"28hashtable_container.h" namespace test { //template & ...
- [学习笔记].Net5项目打包到Linux系统服务时遇到的坑
如果按照官方文档的步骤手动安装.Net5 会有一个坑: 在 Linux 上手动安装 .NET - .NET | Microsoft Docs 在使用systemd打包.Net5服务的时候,无法运行, ...
- 感慨 vscode 支持win7最后一个版本 1.70.3 于2022年7月发布
为什么 家里电脑一直是win7,也懒的升级,nodejs也不能用最新的,没想到vscode也停产了 https://code.visualstudio.com/updates/v1_70 后记 别用u ...
- 2023中山市第三届香山杯网络安全大赛初赛wp
序 被带飞了 PWN move 先往变量 sskd 写入 0x20 字节,往第二个输入点输入 0x12345678 即可进入到第三个输入点,存在 0x8 字节的溢出.思路是在第一个输入点布置 rop ...
- gulp-imagemin版本9图片压缩
由于网上大多数的博文已经比较久,参考性不大 版本 gulp PS D:\XXX\github\hexo> gulp -v CLI version: 2.3.0 Local version: 4. ...