案例说明:

在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. fold命令

    fold命令 fold命令用于限制文件列宽,其会从指定的文件里读取内容,将超过限定列宽的列加入增列字符后,输出到标准输出设备.若不指定任何文件名称,或是所给予的文件名为-,则fold命令会从标准输入设 ...

  2. win32-EnumChildWindows的使用

    #include <Windows.h> #include <iostream> #include <string> static BOOL CALLBACK en ...

  3. 零难度指南:手把手教你如何通过在线Excel实现资产负债表

    前言 作为财务分析中的三大报表之一,资产负债表的作用是展示一个企业在特定时间点上的财务状况.今天小编就为大家介绍一下如何使用葡萄城公司的纯前端在线表格控件SpreadJS实现一个资产负债表. 环境准备 ...

  4. Error creating bean with name 'XXX': Bean with name 'senseOneToSomeFeignImpl' has been injected into other beans [XXXXXX] in its raw version as part of a circular reference

    关于Spring框架中的循环依赖问题,您可以尝试以下几种方法来解决: 重新定义Bean依赖:重构代码以消除循环依赖.这可能涉及重新设计类,使它们不相互依赖即可运行. 使用Setter注入:与构造函数注 ...

  5. 【Azure 应用服务】在App Service for Windows中实现反向代理

    问题描述 如何在App Service for Windows(.NET Stack)中,如何实现反向代理呢? 正向代理:客户端想要访问一个服务器,但是它可能无法直接访问这台服务器,这时候这可找一台可 ...

  6. 【Azure 应用服务】使用Python Azure SDK 来获取 App Service的访问限制信息(Access Restrictions)

    问题描述 为Azure App Service添加访问限制,需要Python Azure SDK来实现的示例代码. 问题解答 查阅Azure App Service的官方资料,使用Python SDK ...

  7. 【Azure 应用服务】App Service的运行状况检查功能失效,一直提示"实例运行不正常"

    问题描述 为App Service配置了健康检查,单独访问Health Check Path的路径,返回代码为200.但为什么在App Service的页面上,一直提示"实例运行不正常&qu ...

  8. 【Azure Function】Function App和Powershell 集成问题, 如何安装PowerShell的依赖模块

    问题描述 在Azure Function中创建一个PowerShell的函数后,其中使用了Get-AzMaintenanceUpdate,New-AzApplyUpdate 等指令,但是在执行时错误. ...

  9. 【Flink入门修炼】2-1 Flink 四大基石

    前一章我们对 Flink 进行了总体的介绍.对 Flink 是什么.能做什么.入门 demo.架构等进行了讲解. 本章我们将学习 Flink 重点概念.核心特性等. 本篇对 Flink 四大基石进行概 ...

  10. Go语言的100个错误使用场景(55-60)|并发基础

    目录 前言 8. 并发基础 8.1 混淆并发与并行的概念(#55) 8.2 认为并发总是更快(#56) 8.3 分不清何时使用互斥锁或 channel(#57) 8.4 不理解竞态问题(#58) 8. ...