00001 /*------------------------------------------------------------------------- 00002 * 00003 * user.h 00004 * Commands for manipulating roles (formerly called users). 00005 * 00006 * 00007 * src/include/commands/user.h 00008 * 00009 *------------------------------------------------------------------------- 00010 */ 00011 #ifndef USER_H 00012 #define USER_H 00013 00014 #include "nodes/parsenodes.h" 00015 00016 00017 /* Hook to check passwords in CreateRole() and AlterRole() */ 00018 #define PASSWORD_TYPE_PLAINTEXT 0 00019 #define PASSWORD_TYPE_MD5 1 00020 00021 typedef void (*check_password_hook_type) (const char *username, const char *password, int password_type, Datum validuntil_time, bool validuntil_null); 00022 00023 extern PGDLLIMPORT check_password_hook_type check_password_hook; 00024 00025 extern Oid CreateRole(CreateRoleStmt *stmt); 00026 extern Oid AlterRole(AlterRoleStmt *stmt); 00027 extern Oid AlterRoleSet(AlterRoleSetStmt *stmt); 00028 extern void DropRole(DropRoleStmt *stmt); 00029 extern void GrantRole(GrantRoleStmt *stmt); 00030 extern Oid RenameRole(const char *oldname, const char *newname); 00031 extern void DropOwnedObjects(DropOwnedStmt *stmt); 00032 extern void ReassignOwnedObjects(ReassignOwnedStmt *stmt); 00033 00034 #endif /* USER_H */