1 | /* |
2 | * seclabel.h |
3 | * |
4 | * Prototypes for functions in commands/seclabel.c |
5 | * |
6 | * Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group |
7 | * Portions Copyright (c) 1994, Regents of the University of California |
8 | */ |
9 | #ifndef SECLABEL_H |
10 | #define SECLABEL_H |
11 | |
12 | #include "catalog/objectaddress.h" |
13 | |
14 | /* |
15 | * Internal APIs |
16 | */ |
17 | extern char *GetSecurityLabel(const ObjectAddress *object, |
18 | const char *provider); |
19 | extern void SetSecurityLabel(const ObjectAddress *object, |
20 | const char *provider, const char *label); |
21 | extern void DeleteSecurityLabel(const ObjectAddress *object); |
22 | extern void DeleteSharedSecurityLabel(Oid objectId, Oid classId); |
23 | |
24 | /* |
25 | * Statement and ESP hook support |
26 | */ |
27 | extern ObjectAddress ExecSecLabelStmt(SecLabelStmt *stmt); |
28 | |
29 | typedef void (*check_object_relabel_type) (const ObjectAddress *object, |
30 | const char *seclabel); |
31 | extern void register_label_provider(const char *provider, |
32 | check_object_relabel_type hook); |
33 | |
34 | #endif /* SECLABEL_H */ |
35 | |