Skip to main content

It's all about permissions - Part 3 ; PLSQL permissions users

Hi guys!

This post is simply on PLSQL permissions.

Specifically, how to script out users.

In Postgres, users can have access to:


This example covers giving users access to a sequence, table and schema only. Permissions to a cluster are obtained differently; these permissions are created in AWS (Amazon Web Services).

Note: In Postgres, make sure that your Postgres connection has read/write permissions by right clicking the cluster and selecting properties to view the user under the 'connections' tab.

Postgres connection





























Locate the database you want to access under the appropriate cluster > right click the database > choose 'Grant Wizard'.

a) Select all the objects.


Postgres grant wizard


b) select the grantee (the user you want to have access to the database) + the level of permissions they need (which is SELECT in this example).

Postgres grant wizard

c) copy the text results in step 3 of 3 and paste it into Notepad++.

Postgres grant wizard





























Note: The permissions the grant wizard provided did not grant access to the schema. You will have to manually grant access to the schema as shown below so the user can have access to the database.

GRANT SELECT ON SEQUENCE database.sequenceName  TO user;

GRANT SELECT ON SEQUENCE database.sequenceName TO user;

GRANT SELECT ON TABLE database.tableName TO user;

GRANT SELECT ON TABLE database.tableName TO user;

GRANT SELECT ON TABLE public.schema_version TO user;

GRANT USAGE ON SCHEMA schemaName TO user;


*Also, there was a system reserved schema which had no effect on permissions called apgcc in Postgres; You can comment out that line of permissions.*
--GRANT USAGE ON SCHEMA apgcc TO user;



That's it!



If you have any questions related to this post, please put them below.


Thank you and Happy reading,

-marshé hutchinson
#learnSQLwithme

Comments

Popular posts from this blog

Msg 14234, Level 16, State 1, Procedure sp_verify_job, Line 199 The specified '@owner_login_name' is invalid (valid values are returned by sp_helplogins [excluding Windows NT groups]).

Hi guys! Here's another quick and easy post. Scenario I was trying to copy a SQL agent job from one server to another by just copying the script of that SQL job. You can copy any script by right clicking a job > Script job as > create to > new query window. I pasted the job on a different server and tried to execute it and received this error: Msg 14234, Level 16, State 1, Procedure sp_verify_job, Line 199 The specified '@owner_login_name' is invalid (valid values are returned by sp_helplogins [excluding Windows NT groups]). This error message is simply saying for the variable '@owner_login_name', the user account associated with the variable is incorrect because it does not exist. Fix Simply update the variable for '@owner_login_name' to a valid user account for the current SQL instance. Now when you execute the script again to create the SQL agent job your results will be: Command(s) completed successfully. If you have any furt...

Executed as user: . Incorrect syntax near ''. [SQLSTATE 42000] (Error 102). The step failed.

Hi everyone! Today's post is about an all too common problem... syntax issues. Whether you fat-finger your keyboard or are always in a rush, chances are you have already encountered many syntax errors. But if you are a newbie,  your syntax error is just around the corner. No worries, this is an easy fix. Syntax errors just let you know part of your code or script is incorrect. Scenario I have a SQL agent job that is using the SQL command line to perform index maintenance, but it is failing. Here's my code : sqlcmd -E -S $(ESCAPE_SQUOTE(SRVR)) -d master -Q "EXECUTE dbo.IndexOptimize @Databases = ' databaseName ', @FragmentationLow = NULL, @FragmentationMedium = 'INDEX_REORGANIZE,INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE', @FragmentationHigh = 'INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE', @FragmentationLevel1 = 5, @FragmentationLevel2 = 30, @UpdateStatistics = 'ALL',@WaitAtLowPriorityMaxDuration = 180, @WaitAtLowPriorityAbortA...

ERROR: must be owner of database databaseName - postgres error

Hi everyone! Today's post is about Postgres SQL. In my environment we are using Postgres SQL as one option for the backend of AWS (Amazon Web Services). That's right. We also have another option - MySQL. This post however will focus on the Postgres SQL error: "ERROR: must be owner of database databaseName" Scenario : I encountered this error when I was trying to drop a database from an AWS cluster. Amazon allows you to group databases inside of containers. These containers still have the same logic as SQL schemas which hold our database in SQL server. You can read more about AWS clusters here . Solution : This is very easy. It's in the error. All I have to do is make myself the owner of the database so I can delete the database. I. If your user account does not already have read/write privileges, then you will need to sign in to the Postgres cluster with an admin account so you can grant read/write access to your user account. II. If your ...