<?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 Base Library-level password protection in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Base-Library-level-password-protection/m-p/477723#M123095</link>
    <description>&lt;P&gt;I'm setting up a proof-of-concept mini-bijou-datamartette. Because the source Microsofty tables are quite sensitive, I must retain security while I go about my investigation phase.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I don't have access to Management Studio (although I'm working on it) and the tables aren't registered with metadata, so I'm cutting my code by hand. It's not ideal, but&amp;nbsp;it's just the way things are.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;When I bring the staging data over from the source, can I&amp;nbsp;code&amp;nbsp;a Base-engined libname with a read and write passwords over every dataset, or do I have to apply the passwords individually to each target dataset? If the latter I don't really mind, but it'd be easier if I could apply them higher up.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Ngā mihi nui,&lt;/P&gt;
&lt;P&gt;Laurie&lt;/P&gt;</description>
    <pubDate>Thu, 12 Jul 2018 23:50:03 GMT</pubDate>
    <dc:creator>LaurieF</dc:creator>
    <dc:date>2018-07-12T23:50:03Z</dc:date>
    <item>
      <title>Base Library-level password protection</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Base-Library-level-password-protection/m-p/477723#M123095</link>
      <description>&lt;P&gt;I'm setting up a proof-of-concept mini-bijou-datamartette. Because the source Microsofty tables are quite sensitive, I must retain security while I go about my investigation phase.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I don't have access to Management Studio (although I'm working on it) and the tables aren't registered with metadata, so I'm cutting my code by hand. It's not ideal, but&amp;nbsp;it's just the way things are.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;When I bring the staging data over from the source, can I&amp;nbsp;code&amp;nbsp;a Base-engined libname with a read and write passwords over every dataset, or do I have to apply the passwords individually to each target dataset? If the latter I don't really mind, but it'd be easier if I could apply them higher up.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Ngā mihi nui,&lt;/P&gt;
&lt;P&gt;Laurie&lt;/P&gt;</description>
      <pubDate>Thu, 12 Jul 2018 23:50:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Base-Library-level-password-protection/m-p/477723#M123095</guid>
      <dc:creator>LaurieF</dc:creator>
      <dc:date>2018-07-12T23:50:03Z</dc:date>
    </item>
    <item>
      <title>Re: Base Library-level password protection</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Base-Library-level-password-protection/m-p/477727#M123097</link>
      <description>&lt;P&gt;I don't see anything on the libname that indicates this is possible. That doesn't mean it doesn't exist though.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here's a macro approach that you can use if desired.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;

%macro lockdown(lib=, datain=, pw=, alter=, read=, write=);

proc datasets lib=&amp;amp;lib.;
modify  &amp;amp;datain. (pw=&amp;amp;pw alter=&amp;amp;alter read=&amp;amp;read write=&amp;amp;write);
run;quit;

%mend;

%let lib=demo;

data check;
length str $200.;
format str $200.;
set sashelp.vtable (keep= libname memname);
where libname=upcase("&amp;amp;lib");
str = catt('%lockdown(lib= ', libname, 
                    ', datain=', memname,
                    ', pw=', 'Password1',
                    ', alter=', 'Password2',
                    ', read=', 'Password3',
                    ', write=', 'Password4',
                    ');');
*call execute(str);
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 13 Jul 2018 00:29:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Base-Library-level-password-protection/m-p/477727#M123097</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-07-13T00:29:39Z</dc:date>
    </item>
    <item>
      <title>Re: Base Library-level password protection</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Base-Library-level-password-protection/m-p/477729#M123099</link>
      <description>&lt;P&gt;Thanks, Reeza! Nicely done. I was thinking along those lines but had been putting it off. Having it a library level would be handy though.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In a perfect world I'd get metadata to control it...oh well.&lt;/P&gt;</description>
      <pubDate>Fri, 13 Jul 2018 00:34:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Base-Library-level-password-protection/m-p/477729#M123099</guid>
      <dc:creator>LaurieF</dc:creator>
      <dc:date>2018-07-13T00:34:07Z</dc:date>
    </item>
  </channel>
</rss>

