PostgreSQL Source Code: contrib/sepgsql/database.c Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
12
23#include "utils/fmgroids.h"
25
26
27
28
29
30
31
32void
34{
39 char *tcontext;
40 char *ncontext;
44
45
46
47
48
49
50 if (!dtemplate)
51 dtemplate = "template1";
52
53 object.classId = DatabaseRelationId;
55 object.objectSubId = 0;
56
58 object.objectId,
59 object.objectSubId);
60
61
62
63
69 audit_name.data,
70 true);
71
72
73
74
75
76
77
78
80
82 Anum_pg_database_oid,
85
90 elog(ERROR, "could not find tuple for database %u", databaseId);
91
93
95 tcontext,
97 NameStr(datForm->datname));
98
99
100
101
108 audit_name.data,
109 true);
110
113
114
115
116
117 object.classId = DatabaseRelationId;
118 object.objectId = databaseId;
119 object.objectSubId = 0;
120
122
125}
126
127
128
129
130
131
132void
134{
136 char *audit_name;
137
138
139
140
141 object.classId = DatabaseRelationId;
142 object.objectId = databaseId;
143 object.objectSubId = 0;
145
149 audit_name,
150 true);
151 pfree(audit_name);
152}
153
154
155
156
157
158
159void
161{
163 char *audit_name;
164
165
166
167
168 object.classId = DatabaseRelationId;
169 object.objectId = databaseId;
170 object.objectSubId = 0;
172
176 audit_name,
177 true);
178 pfree(audit_name);
179}
180
181
182
183
184
185
186void
188{
190 char *audit_name;
191
192 object.classId = DatabaseRelationId;
193 object.objectId = databaseId;
194 object.objectSubId = 0;
196
197
198
199
204 audit_name,
205 true);
206
207
208
209
213 audit_name,
214 true);
215 pfree(audit_name);
216}
void sepgsql_database_relabel(Oid databaseId, const char *seclabel)
void sepgsql_database_post_create(Oid databaseId, const char *dtemplate)
void sepgsql_database_drop(Oid databaseId)
void sepgsql_database_setattr(Oid databaseId)
Oid get_database_oid(const char *dbname, bool missing_ok)
void systable_endscan(SysScanDesc sysscan)
HeapTuple systable_getnext(SysScanDesc sysscan)
SysScanDesc systable_beginscan(Relation heapRelation, Oid indexId, bool indexOK, Snapshot snapshot, int nkeys, ScanKey key)
#define HeapTupleIsValid(tuple)
static void * GETSTRUCT(const HeapTupleData *tuple)
char * sepgsql_get_label(Oid classId, Oid objectId, int32 subId)
char * sepgsql_get_client_label(void)
void pfree(void *pointer)
char * getObjectIdentity(const ObjectAddress *object, bool missing_ok)
FormData_pg_database * Form_pg_database
static Datum ObjectIdGetDatum(Oid X)
const char * quote_identifier(const char *ident)
void ScanKeyInit(ScanKey entry, AttrNumber attributeNumber, StrategyNumber strategy, RegProcedure procedure, Datum argument)
void SetSecurityLabel(const ObjectAddress *object, const char *provider, const char *label)
char * sepgsql_compute_create(const char *scontext, const char *tcontext, uint16 tclass, const char *objname)
#define SEPG_DB_DATABASE__CREATE
#define SEPG_CLASS_DB_DATABASE
bool sepgsql_avc_check_perms_label(const char *tcontext, uint16 tclass, uint32 required, const char *audit_name, bool abort_on_violation)
#define SEPG_DB_DATABASE__SETATTR
#define SEPG_DB_DATABASE__RELABELTO
#define SEPG_DB_DATABASE__DROP
#define SEPG_DB_DATABASE__GETATTR
#define SEPGSQL_LABEL_TAG
#define SEPG_DB_DATABASE__RELABELFROM
bool sepgsql_avc_check_perms(const ObjectAddress *tobject, uint16 tclass, uint32 required, const char *audit_name, bool abort_on_violation)
#define BTEqualStrategyNumber
void resetStringInfo(StringInfo str)
void appendStringInfoString(StringInfo str, const char *s)
void initStringInfo(StringInfo str)
void table_close(Relation relation, LOCKMODE lockmode)
Relation table_open(Oid relationId, LOCKMODE lockmode)