00001 /* 00002 * seclabel.h 00003 * 00004 * Prototypes for functions in commands/seclabel.c 00005 * 00006 * Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group 00007 * Portions Copyright (c) 1994, Regents of the University of California 00008 */ 00009 #ifndef SECLABEL_H 00010 #define SECLABEL_H 00011 00012 #include "catalog/objectaddress.h" 00013 00014 /* 00015 * Internal APIs 00016 */ 00017 extern char *GetSecurityLabel(const ObjectAddress *object, 00018 const char *provider); 00019 extern void SetSecurityLabel(const ObjectAddress *object, 00020 const char *provider, const char *label); 00021 extern void DeleteSecurityLabel(const ObjectAddress *object); 00022 extern void DeleteSharedSecurityLabel(Oid objectId, Oid classId); 00023 00024 /* 00025 * Statement and ESP hook support 00026 */ 00027 extern Oid ExecSecLabelStmt(SecLabelStmt *stmt); 00028 00029 typedef void (*check_object_relabel_type) (const ObjectAddress *object, 00030 const char *seclabel); 00031 extern void register_label_provider(const char *provider, 00032 check_object_relabel_type hook); 00033 00034 #endif /* SECLABEL_H */