There is no way to do that in PostgreSQL; you have to look at all ACLs on all objects.
Perhaps an extension like pg_permissions can be useful.
One other crude method I can think of:
DROP ROLE dev_role;
The DROP ROLE will give you a list of permissions it can find that are granted to the role.
GRANT IMPERSONATE ON LOGIN::admin to notadmin is telling SQL Server that you want to give the IMPERSONATE permission to the notadmin account so that it can IMPERSONATE other users. It sounds like your goal is the opposite, that you want to impersonate the notadmin account from the admin account. You already are accomplishing this when you run the SQL code ...
xp_cmdshell is not PowerShell.
If you run: xp_cmdshell 'whoami.exe'; you will discover that you are nt service\mssqlserver and not Administrator.
xp_cmdshell is impersonating that user (which is a service in our case).
So the solution of the problem should be to impersonate an Administrator.
But you cannot do that.
I have tried using Proxy Credentials:
Change path in mongodb in redhat 8
Eg: Your new location should be inside /new_drive
create new directory inside /new_drive
sudo mkdir database
make user as mongod in new path
sudo chown -R mongod:mongod database
Update SELinux policy (This is important) details here
sudo semanage fcontext -a -t mongod_var_lib_t ./database.*
sudo chcon -Rv -...
You shouldn't have to explicitly DENY any of those permissions since SQL Server is implicitly deny-first, meaning a Login / User / Security Principal (such as a Role) has no access to anything until you've explicitly granted access (either via scripting it with T-SQL using the GRANT keyword or using the UI that SSMS provides). Explicitly denying a permission ...
You don't mention what you are using to manage your database project source control, but I'm assuming Visual Studio.
If you are, then I would advocate for having the database role defined there (not it's members, that gets messy) but the role itself. Then on each object (table, procedure, view, etc.), add commands for the permissions the role should have on ...
is my only option to periodically run a job that reads the metadata and updates permissions?
You could alternatively use Row Level Security to enforce security predicates dynamically at runtime. But that has additional complexity and runtime cost.
Do you foresee any problems with this method?
For those roles you should not mix manual changes to the ...
Select privileges on all SYSCAT objects are granted by default to the PUBLIC pseudo-group (unless the database is created as "restrictive"), so you shouldn't have ended up with users not being able to access syscat.schemata unless you or someone before you chose to actively prevent that.
What could go "wrong"?
Users will be able to ...