案例说明:

在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. Spring Cloud Gateway微服务网关快速入门

    介绍 Spring Cloud Gateway 是 Spring 官方基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关,Spring C ...

  2. Go微服务框架go-kratos实战学习06:配置中心使用-nacos作为配置中心和 file作为配置存储

    一.kratos 配置介绍 配置文件的作用就是把一些会变化的配置项单独存放,与程序相剥离. 把配置项进行单独管理. kratos 支持多种形式的配置, 比如 file,环境变量. 还支持一些配置软件, ...

  3. [Android逆向]Exposed 破解 jwxdxnx02.apk

    使用exposed 遇到了一些坑,这里记录一下 源码: package com.example.exposedlesson01; import de.robv.android.xposed.IXpos ...

  4. django学习第八天--多表操作删除和修改,子查询连表查询,双下划线跨表查询,聚合查询,分组查询,F查询,Q查询

    orm多条操作 删除和修改 修改 在一对一和一对多关系时,和单表操作是一样的 一对一 一个作者对应一个信息 ad_obj = models.AuthorDetail.objects.get(id=1) ...

  5. yum源配置脚本

    # yum源配置脚本 #!/bin/bash mkdir /etc/yum.repos.d/backup mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bac ...

  6. SDWebImage从小白到大师蜕变

    简介 SDWebImage提供的简洁的获取远程URL图片的API:平时开发中使用最多场景就是列表中的cell中要显示远程图片的需求,在具体的实现中要避免加载图片造成的界面卡顿,列表卡顿等现象的出现:所 ...

  7. 常用 Maven 插件介绍

    我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的.进一步说,每个任务对应 ...

  8. Java 方法的重载(overload)

    1 /* 2 * 3 * 方法的重载(overload) 4 * 1.定义:在同一个类中,允许存在一个以上的同名方法,只要他们的参数个数或者参数类型不同 5 * 6 * "两同一不同&quo ...

  9. CYQ.Data 支持 KingbaseES人大金仓数据库

    KingbaseES人大金仓数据库介绍: KingbaseES是一种关系型数据库管理系统,也被称为人大金仓数据库.KingbaseES 是北京人大金仓信息技术股份有限公司研发的,具有自主知识产权的通用 ...

  10. XAF新手入门 - 视图布局示例

    前言 掌握了应用程序模型(ApplicationModel)的基础知识之后,通过一个视图布局示例来加强对应用程序模型的理解. 官网给出了比较丰富的示例,并且这些示例涵盖了应用程序模型操作的方方面面,通 ...