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)