Skip to main content

How to enable windows authentication in PostgreSQL


1.    Steps to create user or role in PostgreSQL


·        Open pgAdmin III
·        Login to PostgreSQL database
·        Select “Login Roles” and right click on mouse to view the context menu



·        Select “New Login Role” from context menu



·        Enter desired user name in “Role name” text box
·        Select “Definition” tab in “New Login Role” window




·        Enter desired Password in the given text box
·        Select “Role privileges” tab in “New Login Role” window



·        Select the privileges for the entered user or role
·        Select “SQL” tab in “New Login Role” window



·        This will display the auto generated script
·        Review the script and click on “OK” button
·        Now in the “Login Roles” the newly created role or user “newUser” is displayed




·        Now in pgAdmin III object browser select the database to which the newly created user should be mapped

·        Select the database and right click to view the context menu
·        Select “Properties” from context menu

·        Select the “newUser” as owner

2.    Modify pg_hba.conf


In pg_hba.conf modify 127.0.0.1 to client IP address and md5 to trust as shown below
# IPv4 local connections:
host    all             all             10.145.16.224/32            trust

3.    Sample c# code to test the PostgreSQL connection


static void Main(string[] args)
       {
            bool isWindows = true;
            var res = DBConnect(isWindows);

            Console.WriteLine(" Connection - " + res.ToString());
            Console.ReadLine();
        }

        public static bool DBConnect(bool isWindows)
        {
            string localServ = "localhost";
            string localDBase = "TestDB";
            string localUser = ""; //postgres
            string localPwd = ""; // admin
            string localPort = "5432";

            NpgsqlConnection _localServerConn;
            string constr = string.Empty;

            constr = (isWindows) ? "Server=" + localServ + "; Port=" + localPort + ";Database=" + localDBase + "; Integrated Security=true;"
                                 : "Server=" + localServ + ";Port=" + localPort + ";User Id=" + localUser + ";Password=" + localPwd + ";Database=" + localDBase;

            _localServerConn = new NpgsqlConnection(constr);
            try
            {
                _localServerConn.Open();
                _localServerConn.Close();
                return true;
            }
            catch (Exception ex)
            {
                _localServerConn.Close();
                return false;
            }
        }

4.    Note:

If login fails then check the current log in PostgreSQL\9.2\data\pg_log folder

It will display the unsuccessful login info as shown below

2013-04-02 13:56:03 IST FATAL:  role "SYSTEM" does not exist
2013-04-02 13:56:18 IST FATAL:  role "[Windows ID Name]" does not exist

Create the user or role of "[Windows ID Name]" and run the code again.

Comments

Popular posts from this blog

C# Generic Factory

Implement Factory pattern using generics     public interface IDoWork   {       string DoWork();   }     Declare an Interface first by abstracting the common  functionality    Here I am taking the example of DoWork     public class Manager : IDoWork   {     public string DoWork()     {         return "Manager Manages School" ;     }   }     Implement the IDoWork in concrete classes as shown      public class Teacher : IDoWork     {         public string DoWork()         {             return "Teacher teaches student in school" ;         }     }     public class Student : IDoWork     {         public string DoWork()         {             return "Study in school" ;         }     } This class will actually create an instance of the concrete class so that you can work on that        object further     public class FactoryDemo     {         public T Create

UML - Association, Aggregation, Composition, Generalization, Specialization, Realization and Dependency

Association Association is a simple relationship between two classes. For example A relationship between Professor Class and Student class is known as Association. Both Classes can exist without each other, so Professor and Student are two independent classes. In this kind of relationships there will not be any owner class. Both classes have their own life cycle. UML Notation:     Aggregation Aggregation is a special type of Association. It is known as “Has-A” relationship. For example A Department class can contain Professor Class. Here Department class is owner class. Here in this relationship even after deleting Department class, Professor Class can exits. UML Notation: Composition Composition is a special type of Aggregation. It is known as “Is-A” relationship. For example A University Class has many Department class. Here University and Department objects are dependent on each other. If we delete University cl