Search Postgresql Archives

Re: 8.1 removed functions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Tom,

With PG 8.0 I was using a query using makeaclitem() and aclcontains()
to extract permissions.  Here is a sample query for database
permissions ...

SELECT
	((grantee.name)::character varying)	AS grantee,
	((nc.datname)::character varying)	 AS database,
	(pr."type")					    AS privilege_type,
	(
	CASE
		WHEN aclcontains(nc.datacl, makeaclitem(grantee.usesysid,
grantee.grosysid, u_grantor.usesysid, pr."type", true))
		THEN 'YES'::text
		ELSE 'NO'::text
	END)                                                AS is_grantable,
	('NO')						      AS with_hierarchy
FROM
	pg_database nc,
	pg_user u_grantor,
	(((((	SELECT pg_user.usesysid, 0, pg_user.usename  FROM pg_user )
		  UNION ALL
		 ( SELECT 0, pg_group.grosysid, pg_group.groname  FROM pg_group
		  )
	)) UNION ALL (	SELECT 0, 0, 'PUBLIC' ) )) grantee(usesysid, grosysid,
name),
	(((((	SELECT 'CREATE' ) UNION ALL (	SELECT 'TEMP' ) )) UNION ALL (
SELECT 'USAGE' ) )) pr("type")
WHERE
	aclcontains(nc.datacl, makeaclitem(grantee.usesysid, grantee.grosysid,
u_grantor.usesysid, pr."type", false))
	AND (grantee.name = 'postgres'::name)


What is the recommended manner to extract object permissions for 8.1
now that these functions are not available?

regards,
-Niels



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux