<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Registering an postgres database through management console via odbc drivers in Administration and Deployment</title>
    <link>https://communities.sas.com/t5/Administration-and-Deployment/Registering-an-postgres-database-through-management-console-via/m-p/983263#M30674</link>
    <description>&lt;P&gt;The log from table registration doesn't tell the whole back-and-forth dialog that is going on between the SAS Management Console (SMC) GUI client and the SAS workspace server, because to look at the log, it all seems like it happens at once.&amp;nbsp; Instead, there's a dialog going on between the wizard and the workspace.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;When you select the library, SMC requests a workspace server.&amp;nbsp; If you've ever attempted to register a table and get prompted for SASApp credentials, that is for starting the workspace server.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Once the workspace server is started, SMC checks to see if it needs to prompt for database credentials, based upon how the server connection for the library is defined, and what login credentials are available to the user.&amp;nbsp; &amp;nbsp;Since you didn't provide the registering user (in your case, &lt;A href="mailto:sasadm@saspw" target="_blank"&gt;sasadm@saspw&lt;/A&gt;) a login credential for this authentication domain, you are prompted for the userid and password for postgres.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;With the credentials in hand, SMC builds a native libname statement based upon the metadata definition, and submits it to the workspace server, and queries it (via Java) to present the list of tables for the user to select from.&amp;nbsp; That's when you selected&amp;nbsp;&amp;nbsp;the&amp;nbsp;&lt;STRONG&gt;Actuals&amp;nbsp;&lt;/STRONG&gt;table.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;After that, the libref assigned to the native libname is no longer used.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Table registration is then performed using &amp;nbsp;&lt;A href="https://go.documentation.sas.com/doc/en/pgmsascdc/9.4_3.5/lrmeta/p1kmphao1n1nwan1x71luoeiv8yo.htm" target="_self"&gt;PROC METALIB&lt;/A&gt; code that is built by SMC and submitted to the workspace. The &lt;A href="https://go.documentation.sas.com/doc/en/pgmsascdc/9.4_3.5/lrmeta/n1f1pmpep262t9n1c44zmv7knfad.htm" target="_self"&gt;OMR&lt;/A&gt;&amp;nbsp;statement uses the &amp;nbsp;&lt;A href="https://go.documentation.sas.com/doc/en/pgmsascdc/9.4_3.5/lrmeta/part-3.htm" target="_self"&gt;metadata libname engine&lt;/A&gt;&amp;nbsp;to assign the library.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This is where things are falling down; using strictly what's in metadata, the metadata identity that is attempting the registration does not have any login information for postgres.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'd recommend creating a login object on the registering user's account tab with the credentials, or if you are sharing this credential, defining the credential to a group in metadata, and ensuring that the registering user is a member of this group.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Just because you are using &lt;A href="mailto:sasadm@saspw" target="_blank"&gt;sasadm@saspw&lt;/A&gt;&amp;nbsp;does not mean that it can read the actual password of another user.&amp;nbsp; &amp;nbsp;It can't, and that's for solid good security reasons.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Carl Sommer - SAS Technical Support&lt;/STRONG&gt;&lt;/P&gt;</description>
    <pubDate>Tue, 10 Feb 2026 14:34:39 GMT</pubDate>
    <dc:creator>carl_sommer</dc:creator>
    <dc:date>2026-02-10T14:34:39Z</dc:date>
    <item>
      <title>Registering an postgres database through management console via odbc drivers</title>
      <link>https://communities.sas.com/t5/Administration-and-Deployment/Registering-an-postgres-database-through-management-console-via/m-p/983242#M30671</link>
      <description>&lt;P&gt;Hi everyone,&lt;/P&gt;
&lt;P&gt;We are running SAS 9.4 in a windows server and we want to do the following: install an odbc driver for postgres.&lt;/P&gt;
&lt;P&gt;So far these are the steps we have performed:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Via the odbc data source administrator (64bit) created a dsn connection (see pictures 1,2). The test is successful&lt;/LI&gt;
&lt;LI&gt;I then created in Management Console a File Server and a user for credentials that points to the specific data src (see picture 3)&lt;/LI&gt;
&lt;LI&gt;Then I created the corresponding Library by using the ODBC engine (see picture 4)&lt;/LI&gt;
&lt;LI&gt;The user that I created in SAS is postgres under a new authentication domain which stores there the credentials for the postgres serve. The user does not belong to a group but the authorization tab has the following roles (PUBLIC, SAS Administrators, SAS System Services and SAS USERS)&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now the problem can be found when I want to register the table in the library. SAS finds the table but when I try to register it gives the following error:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;1                                                          The SAS System                           10:38 Tuesday, February 10, 2026

NOTE: Copyright (c) 2023 by SAS Institute Inc., Cary, NC, USA. 
NOTE: SAS (r) Proprietary Software 9.4 (TS1M8) 
      Licensed to GENERALI HELLAS - IAA- PRODUCTION, Site 51800363.
NOTE: This session is executing on the X64_SRV16  platform.



NOTE: Analytical products:
      
      SAS/STAT 15.3

NOTE: Additional host information:

 X64_SRV16 WIN 10.0.14393  Server

NOTE: SAS Initialization used (Total process time):
      real time           0.02 seconds
      cpu time            0.01 seconds
      
NOTE: The autoexec file, D:\SAS\EBIEDIEG\Lev1\SASApp\WorkspaceServer\autoexec.sas, was executed at server initialization.
1          LIBNAME ACTUALS ODBC  DATAsrc=actuals  SCHEMA=public  USER=postgres
1        ! PASSWORD=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ;
NOTE: Libref ACTUALS was successfully assigned as follows: 
      Engine:        ODBC 
      Physical Name: actuals
2          
2                                                          The SAS System                           10:38 Tuesday, February 10, 2026

3          options VALIDVARNAME=ANY VALIDMEMNAME=EXTEND;
3                                                          The SAS System                           10:38 Tuesday, February 10, 2026

4          proc metalib
5          ;
5        !     omr (LIBURI="A5779UC5.AZ00010W"
6             user="sasadm@saspw" password=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7             );
8             REPORT(type = summary out = "tab_info");
9             SELECT ("ACTUALS"
10          );
11            FOLDERID = "A5779UC5.AJ000PHV";
12         run;

ERROR: CLI error trying to establish connection: connection to server at "localhost" (::1), port 5432 failed: FATAL:  password 
       authentication failed for user "postgres" 
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE METALIB used (Total process time):
      real time           0.39 seconds
      cpu time            0.07 seconds&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The username and the password is correct. However the table cannot be registered.&lt;/P&gt;
&lt;P&gt;Please not that the first time it asked for credentials I gave the database credentials of the postgres server.&lt;/P&gt;
&lt;P&gt;Can you assist me on that?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="vfarmak_0-1770710525168.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/113102i52BB05A99FC4E363/image-size/medium?v=v2&amp;amp;px=400" role="button" title="vfarmak_0-1770710525168.png" alt="vfarmak_0-1770710525168.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;&lt;EM&gt;Picture 1 : ODBC for Postgres&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="vfarmak_1-1770710626174.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/113103iED209DCD962FBD8D/image-size/medium?v=v2&amp;amp;px=400" role="button" title="vfarmak_1-1770710626174.png" alt="vfarmak_1-1770710626174.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;&lt;EM&gt;Picture 2: ODBC for Postgres&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="vfarmak_2-1770710740516.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/113104i8A6F8408DBA0C763/image-size/medium?v=v2&amp;amp;px=400" role="button" title="vfarmak_2-1770710740516.png" alt="vfarmak_2-1770710740516.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;&lt;EM&gt;Picture 3: Data src that points to the system dsn&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="vfarmak_3-1770712572720.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/113105i5B78770504CFBD60/image-size/medium?v=v2&amp;amp;px=400" role="button" title="vfarmak_3-1770712572720.png" alt="vfarmak_3-1770712572720.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;&lt;EM&gt;Picture 4: SAS Library&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 10 Feb 2026 08:40:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Administration-and-Deployment/Registering-an-postgres-database-through-management-console-via/m-p/983242#M30671</guid>
      <dc:creator>vfarmak</dc:creator>
      <dc:date>2026-02-10T08:40:23Z</dc:date>
    </item>
    <item>
      <title>Re: Registering an postgres database through management console via odbc drivers</title>
      <link>https://communities.sas.com/t5/Administration-and-Deployment/Registering-an-postgres-database-through-management-console-via/m-p/983263#M30674</link>
      <description>&lt;P&gt;The log from table registration doesn't tell the whole back-and-forth dialog that is going on between the SAS Management Console (SMC) GUI client and the SAS workspace server, because to look at the log, it all seems like it happens at once.&amp;nbsp; Instead, there's a dialog going on between the wizard and the workspace.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;When you select the library, SMC requests a workspace server.&amp;nbsp; If you've ever attempted to register a table and get prompted for SASApp credentials, that is for starting the workspace server.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Once the workspace server is started, SMC checks to see if it needs to prompt for database credentials, based upon how the server connection for the library is defined, and what login credentials are available to the user.&amp;nbsp; &amp;nbsp;Since you didn't provide the registering user (in your case, &lt;A href="mailto:sasadm@saspw" target="_blank"&gt;sasadm@saspw&lt;/A&gt;) a login credential for this authentication domain, you are prompted for the userid and password for postgres.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;With the credentials in hand, SMC builds a native libname statement based upon the metadata definition, and submits it to the workspace server, and queries it (via Java) to present the list of tables for the user to select from.&amp;nbsp; That's when you selected&amp;nbsp;&amp;nbsp;the&amp;nbsp;&lt;STRONG&gt;Actuals&amp;nbsp;&lt;/STRONG&gt;table.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;After that, the libref assigned to the native libname is no longer used.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Table registration is then performed using &amp;nbsp;&lt;A href="https://go.documentation.sas.com/doc/en/pgmsascdc/9.4_3.5/lrmeta/p1kmphao1n1nwan1x71luoeiv8yo.htm" target="_self"&gt;PROC METALIB&lt;/A&gt; code that is built by SMC and submitted to the workspace. The &lt;A href="https://go.documentation.sas.com/doc/en/pgmsascdc/9.4_3.5/lrmeta/n1f1pmpep262t9n1c44zmv7knfad.htm" target="_self"&gt;OMR&lt;/A&gt;&amp;nbsp;statement uses the &amp;nbsp;&lt;A href="https://go.documentation.sas.com/doc/en/pgmsascdc/9.4_3.5/lrmeta/part-3.htm" target="_self"&gt;metadata libname engine&lt;/A&gt;&amp;nbsp;to assign the library.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This is where things are falling down; using strictly what's in metadata, the metadata identity that is attempting the registration does not have any login information for postgres.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'd recommend creating a login object on the registering user's account tab with the credentials, or if you are sharing this credential, defining the credential to a group in metadata, and ensuring that the registering user is a member of this group.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Just because you are using &lt;A href="mailto:sasadm@saspw" target="_blank"&gt;sasadm@saspw&lt;/A&gt;&amp;nbsp;does not mean that it can read the actual password of another user.&amp;nbsp; &amp;nbsp;It can't, and that's for solid good security reasons.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Carl Sommer - SAS Technical Support&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 10 Feb 2026 14:34:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Administration-and-Deployment/Registering-an-postgres-database-through-management-console-via/m-p/983263#M30674</guid>
      <dc:creator>carl_sommer</dc:creator>
      <dc:date>2026-02-10T14:34:39Z</dc:date>
    </item>
  </channel>
</rss>

