55 lines
2.1 KiB
C++
55 lines
2.1 KiB
C++
/*
|
|
* Copyright (c) 2020 Huawei Technologies Co.,Ltd.
|
|
*
|
|
* openGauss is licensed under Mulan PSL v2.
|
|
* You can use this software according to the terms and conditions of the Mulan PSL v2.
|
|
* You may obtain a copy of Mulan PSL v2 at:
|
|
*
|
|
* http://license.coscl.org.cn/MulanPSL2
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
|
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
|
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
|
* See the Mulan PSL v2 for more details.
|
|
* -------------------------------------------------------------------------
|
|
*
|
|
* gs_policy_plugin.h
|
|
*
|
|
* IDENTIFICATION
|
|
* contrib/security_plugin/gs_policy_plugin.h
|
|
*
|
|
* -------------------------------------------------------------------------
|
|
*/
|
|
#ifndef GS_POLICY_PLUGIN_H_
|
|
#define GS_POLICY_PLUGIN_H_
|
|
|
|
#include <string>
|
|
#include "gs_policy_labels.h"
|
|
#include "gs_audit_policy.h"
|
|
#include "executor/executor.h"
|
|
|
|
#define MESSAGESIZE 2048
|
|
|
|
extern AccessControl_SecurityAuditObject_hook_type accesscontrol_securityAuditObject_hook;
|
|
extern Check_acl_privilige_hook_type check_acl_privilige_hook;
|
|
extern CheckSecurityAccess_hook_type CheckSecurityAccess_hook;
|
|
extern Reset_security_policies_hook_type reset_security_policies_hook;
|
|
extern Reset_security_filters_hook_type reset_security_filters_hook;
|
|
extern Reset_security_access_hook_type reset_security_access_hook;
|
|
extern Reset_security_privilige_hook_type reset_security_privilige_hook;
|
|
extern CheckSecurityPolicyFilter_hook_type checkSecurityPolicyFilter_hook;
|
|
|
|
typedef bool (*IsRoleInUse_hook_type)(Oid roleid);
|
|
|
|
void gs_audit_issue_syslog_message(const char* module, const char* message, int event_type, int result_type);
|
|
void get_remote_addr(IPV6 *ip);
|
|
const char* get_session_app_name();
|
|
const char* GetUserName(char* user_name, size_t user_name_size);
|
|
bool get_ipaddress(gs_stl::gs_string& ipaddress);
|
|
void set_result_set_function(const PolicyLabelItem func);
|
|
void get_name_range_var(const RangeVar *rangevar, gs_stl::gs_string *buffer, bool enforce = true);
|
|
CmdType get_rte_commandtype(RangeTblEntry *rte);
|
|
extern void load_database_policy_info();
|
|
|
|
#endif /* GS_POLICY_PLUGIN_H_ */
|