Klog på SAS seminar, december 2013 Hvordan skjules password i loggen ved brug af macro, Svend Bang, Københavns Universitet



Relaterede dokumenter
Peter Kellberg. Rundt om Danmarks Statistiks makroer. Design, Standardisering, Teknik

Moderne SAS-programmering på webben med SAS Studio. Georg Morsing SAS Institute

VÆR EFFEKTIV SOM SAS PROGRAMMØR MED SAS ENTERPRISE GUIDE 7.12 GEORG MORSING

PROC TRANSPOSE. SAS-tabellen - hensigtsmæssig lagring af data. Copyright 2011 SAS Institute Inc. All rights reserved.

ODBC made easy på dansk (når bare man ved hvordan) Jesper Michelsen, Data warehouse & Analyse

Mænd, Mus og Metadata

INTRODUKTION TIL SAS

Anvendelse af Model- View koncept i SAS Stored Processer

Variansanalyse i SAS. Institut for Matematiske Fag December 2007

Programmering I Java/C#

Appelsiner, bananer og citroner

OPC ACCESS HEARTBEAT 1

Deltag i en quiz: Test din viden i SAS -programmering

Weightsystem.dk. Delsystems Bruger. Manual. Weightsystem.dk V

Umbraco installationsvejledning

Dan dine egne SAS - funktioner med PROC FCMP

Parameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET.

Introduktion til funktioner, moduler og scopes i Python

Dynamiske Web-applikationer i SAS-portalen

Introduktion til SAS macro language

StarWars-videointro. Start din video på den nørdede måde! Version: August 2012

Sortering fra A-Z. Henrik Dorf Chefkonsulent SAS Institute

Projekt DATA step view

Hvorfor SAS Kort intro til SAS

Opsætning af Oracle Designer 10g repositorie

Samspillet mellem databaser og kort styres af GeoCAD programmet GeoDB.

Vejledning til Teknisk opsætning

Kort intro til SAS. Efterår Janne Petersen Judith L Jacobsen Lene Theil Skovgaard

Hosted CRM Outlook client connector setup guide. Date: Version: 1. Author: anb. Target Level: Customer. Target Audience: End User

Derfor vil jeg bygge dette eksempel på een table hvor der kan tilkyttes personer til ALLE noder og der kan tilføjes et vilkårligt antal niveauer

ExtraNet. Sider beskyttet med kodeord i OLO

SAS-programmering med sikkerhedsnet: FUTS (Framework for Unit Testing SAS programs)

Opsætning af MobilePBX med Kalenderdatabase

DPR lokal persondatabase. Checkliste for CPR migrering

Google Maps og SAS/GRAPH software

At klippe en streng over på det mest hensigtsmæssige sted

Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:...

Skrevet den 18. Feb 2010 af arne_v I kategorien Programmering / Visual Basic.NET

ODS measured tagset til RTF er smart og kan tilpasses

Citrix Receiver komplet guide til installation, brug og fejlfinding Version

Peter Kellberg. Det vidste du ikke om et EG projekt!

Status på det trådløse netværk

Vejledning til at tjekke om du har sat manuel IP på din computer.

SAS formater i Danmarks Statistik

en fælles opsætning af SAS som grundlag for samarbejde. Jesper Michelsen, Risikostyring Modeller

Udviklingstab, og hvordan man sætter instilling i dansk office 2007 som jeg bruger herhjemme.

MySQL i Java. Tutorial lavet af Jákup W. Hansen TSU semester 05.januar 2007

Hosted CRM Outlook client connector setup guide. Date: Version: 1. Author: anb. Target Level: Customer. Target Audience: End User

High-Performance Data Mining med SAS Enterprise Miner 14.1

VDI AARHUS UNIVERSITET VER 1.5 VDI 30. APRIL

Citrix Receiver guide til Mac, Iphone, Ipad Version

Databaseadgang fra Java

Egenudviklet promotion tool mellem forskellige SAS Visual Analytics miljøer.

Advanced Word Template Brugermanual

Programmering C RTG

The EAL Jobportal. How to get started

Det Naturvidenskabelige Fakultet. Introduktion til Blackboard (Øvelser) Naturvidenskabeligt Projekt 2006 Prøv at forske

En Kort Introduktion til Oracle

Har du glemt hvordan du loggede ind, da du oprettede din ansøgning?

Ratingsystem i PHP og MySQL

a) Oprettelse af brugerkoder, brugernavne og brugerrettigheder. 2. Vent til velkomsthilsenen erstattes af meddelelsen Kodeindtastning.

Indholdsfortegnelse If-sætningen... 3 Opgaver... 4 OR, AND sammen med if-sætningen... 5 Rand() funktion... 5 Opgave... 5 Include() funktionen...

Sammenlign og byt. Et eksempel på dokumentering af et program

%kfhashmerge(main, flows, crsp_fundno pdate, flowval mtna lagmtna, main);

Xerox. Øvelse med tekst og billeder Nattergalen

Vejledning Patientportal

Dynamisk PHP design OPDATERET

Anvend dine SAS -programmer som SAS Stored Processes

Zinio. Hvordan virker den?

I denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal.

PID2000 Archive Service

DET KONGELIGE BIBLIOTEK NATIONALBIBLIOTEK OG KØBENHAVNS UNIVERSITETS- BIBLIOTEK. Index

Indholdsfortegnelse Forord...8 Makroer samt aktivere Udvikler-fanen...10 Makrosikkerhed (Sikkerhedsindstillinger)...13

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi Opgave: Brev til Sigurd Lære: John Austin Side 1 af 8 Dato:

RIGSPOLITIET. Vejledning i konvertering. fra. Word -dokument. til. PDF-fil. på politi.dk. Rigspolitiets websektion

Elektroniske tidsskrifter og databaser via Medicinsk Biblioteks hjemmeside. Procedure når du sidder ved en PC, der er koblet til sygehusets netværk

OPC Access 3.0 opdatering via Stored Procedure

Android. Opsætning af Samsung Galaxy Ace

IT på Social og Sundheds Skolen Fyn Juni 2019

Database tips. Den forudsætter lidt kendskab til SQL men er for mindre erfarne. Denne guide er oprindeligt udgivet på Eksperten.dk

Write-N-Cite III til Word 2003

TimeStamper Guide til fejlretning

Vejledning til validator test af metadata

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:

WIFI koder til Miljøagenturet: Brugernavn: AIACE course Kodeord: TsEG2pVL EU LOGIN KURSUS 21. AUGUST FORMIDDAG:

Lær Python dag 1 - modul 1

US Kalt ura BRUG AF KALTURA I BLACKBOARD AARHUS UNIVERSITET CENTER FOR UNDERVISNINGSUDVIKLING OG DIGITALE MEDIER

Opret ODBC datakilde Vejledning

Elektroniske tidsskrifter og databaser via Regionslicenser

Exceptions i Delphi. Try except

Prepared Statements. Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC.

Softwaretest. - også af "ikke testbar" software. DAPUG erfamøde 7. marts 2012 Thomas Vedel, Thomas Vedel Consult thomas@veco.

REFWORKS FAGKONSULENTENS VEJLEDNING

how to save excel as pdf

DET KONGELIGE BIBLIOTEK NATIONALBIBLIOTEK OG KØBENHAVNS UNIVERSITETS- BIBLIOTEK. Indhold

GUIDE TIL CLOUD DRIVE

Schedulering af SAS job i MS Task Scheduler, som sender med log og statuskode ved fejl

Dansk Ride Forbund Stævnesystem 2 Installationsvejledning

Portal Registration. Check Junk Mail for activation . 1 Click the hyperlink to take you back to the portal to confirm your registration

Afdeling for Anvendt Matematik og Statistik Januar Regressionsanalyse i SAS 2. Regressionsanalyse med GLM Sammenligning af regressionslinier

Transkript:

Klog på SAS seminar, december 2013 Hvordan skjules password i loggen ved brug af macro, Svend Bang, Københavns Universitet Baggrund: I et frugtbart samarbejde mellem Danmarks Statistik, Forskningsservice, og Centre for Applied Microeconometrics, Økonomisk Institut, Københavns Universitet, er der etableret en samling af tidsrækker, som stilles til rådighed for CAMs forskere. Af almindelige ordens- og sikkerhedsgrunde har hvert enkelt projekt og dets deltagere kun adgang til udvalgte registre og variabler. Problem/Udfordring: * 131203, SB: Problem - eller på nudansk: Udfordring! Data class(pw=minkode) Data class(pw=&pwd) %Macro Problem Data class(pw=&pwd) %Mend Problem Options mprint %Problem Ved afvikling af ovenstående ses det, at værdien af &pwd vises i loggen, hvilket selvfølgelig ikke er så smart! Dannelse af Views: * DanView.sas Opgave: Dan views til læsning af registre i Demo_db. I det første view skjules pw for projektet. Bemærk anvendelsen af Nosave, der sikrer at koden bag viewet ikke kan læses. Det næste view dannes med SQL. Her foretages en eventuel ændring af Rækkefølgen af variablerne samt tilknyttes et libname. 131203, SB: Første udgave %include "&Her\Begynd.sas" %include "&Her\HentDsnAkode.sas" %include "&Her\SkjulPW.sas" %Macro DanView(Reg,SortVar,VarList,ReorderList) Argumenter: Reg - Navn på register SortVar - Her sættes en sorteringsvariabel i dictionary Varlist - her udvælges eventuelt variabler. Kan være blank. ReorderList - Ændring af rækkefølgen af variabler i dictionary. Kan være * for alle.

Data bib.&reg.av(sortedby=&sortvar)/view=bib.&reg.av(source=nosave) %SkjulPW(Set fra.&reg(pw="<adgangskode>")) By &SortVar %If &Varlist^= %Then Keep &VarList Proc Sql Create view bib.&reg.v as Select &ReorderList from bib.&reg.av using libname fra "&Her\Demo_db" Quit %Mend DanView Options mprint mrecall msglevel=i %Begynd(R) &Batch.%include "&Her\PWencode.sas" /source2 Libname Fra "&Her\Demo_db" Libname bib "&Her\Sasbib" %DanView(class,name,,%str(Name, Age, Height, Sex, Weight)) %DanView(classfit,Name,Name predict lowermean uppermean lower upper,*) Projektets fælles data er anbragt i Demo_db, der her eksemplificerer CAMs fælles database. Brugen af views sikrer at det enkelte projekt kun har adgang til de relevante data, mens det nødvendige password forbliver skjult. Makroen SkjulPW er det eneste originale bidrag til løsningen. %Macro SkjulPW(Linie) Argumenter: Linie Skal indeholde strengen <AdgangsKode>, der omsættes til det aktuelle password. Husk ved kaldet at anvende %str(), hvis der er kommaer i Linie. Gældende makrooptions aflæses, nulstilles og sættes igen. 130718, SB: Første version %Local currmprint currsymbolgen LocalLinie %Let currmprint=%sysfunc(getoption(mprint)) %Let currsymbolgen=%sysfunc(getoption(symbolgen)) %Let LocalLinie=* &linie &LocalLinie Options nomprint nosymbolgen Hvis _pwencode er sat af Proc PWencode, anvendes denne. Ellers anvendes den indtastede kode &DsnAkode. %If %symexist(_pwencode) %then %Let LocalLinie=%sysfunc(tranwrd(&Linie,<AdgangsKode>,&_pwencode)) %Else %Let LocalLinie=%sysfunc(tranwrd(&Linie,<AdgangsKode>,&DsnAkode)) &Locallinie Options &currmprint &currsymbolgen %Mend SkjulPW

Oprettelse af eksempel og test: * Flyt.sas Opgave: Her dannes testdata i Demo_db. 131203, SB: Første udgave %include "&Her\Begynd.sas" %include "&Her\HentDsnAkode.sas" %include "&Her\SkjulPW.sas" Options mprint mrecall msglevel=i %Let FqrsteGang= %Begynd(W) Libname bib "&Her\Demo_db" %SkjulPW(Data bib.class(pw="<adgangskode>")) %SkjulPW(Proc sort data=sashelp.classfit out=bib.classfit(pw="<adgangskode>")) By name * TestView.sas Her ses et eksempel på anvendelsen af viewet. 131203, SB: TestView Options mprint mrecall msglevel=i %Macro TestView(Reg) Title "Test af view &reg.v" Proc contents data=bib.&reg.v varnum Proc print data=bib.&reg.v %Mend TestView Libname bib "&Her/Sasbib" %TestView(class) %TestView(classfit) Ved kopiering af ovenstående og papirets øvrige kode kan det samlede eksempel afprøves. Læseren er også velkommen til at e-skrive til forfatteren så tilsendes der en zipfil! Administration: Det har været en udtrykkelig forudsætning, at programmeringen kunne ske i Enterprise Guide samtidigt med, at afvikling i batch stadig skulle være mulig. Løsningen er også afprøvet under 9.3. %Macro Begynd(RellerW) Argumenter: R for Read, W for Write - begge sendes videre til makroen HentDsnAkode. Variabler: Afvikling - 0 for klassisk eller Batch, 1 For EG FqrsteGang - Sættes til *, således at gentagen udførelse forhindres Batch - Sættes til * under EG 131215, SB: Tilpasset 9.3, SYSPROCESSNAME 131211, SB: Første version %Global DsnAkode FqrsteGang Afvikling Batch

%If %substr(&sysprocessname,1,3) EQ %str(dms) or %substr(&sysprocessname,1,7) EQ %str(program) %then %Let Afvikling=0 %Else %Let Afvikling=1 &FqrsteGang %HentDsnAkode(&RellerW) %If &Afvikling=0 %then %Let Batch=&Fqrstegang %Else %Let Batch=* %Let FqrsteGang=* %Mend Begynd %Macro HentDsnAkode(RellerW) Argumenter: R for Read, W for Write Ved R promptes kun én gang for adgangskoden. Ved W gøres det to gange. Funktion: Under Batch/Klassisk anvendes %Windows, men der under EG anvendes Promts. 131214, SB: KontrolKode erklæres som Local 131211, SB: Første version %Local KontrolKode %Let DsnAkode= R for Read %If &RellerW = R %Then %Do %If &Afvikling=0 %then %Do %Window AkodeR #5 @5 'Adgangskode til alle datasæt:' #5 @35 DsnAkode 8 attr=underline display=no required=yes %Display AkodeR %Else %Do %Let DsnAkode=&AkodeR_password W for Write %Else %Do %If &Afvikling=0 %then %Do %Do %Until(&DsnAkode = &KontrolKode) %Window AkodeW #5 @5 'Adgangskode til alle datasæt:' #5 @35 DsnAkode 8 attr=underline display=no required=yes #7 @5 'Indtast koden igen:' #7 @25 KontrolKode 8 attr=underline display=no required=yes %Display AkodeW %Else %Do %Let DsnAkode=&AkodeR_PASSWORD %Let KontrolKode=&Kontrol_PASSWORD %If &DsnAkode NE &KontrolKode %Then %Do %Put Fejl i Password - Kør programmet igen!!!

%ABORT ABEND %Mend HentDsnAkode Nedenstående er et eksempel på brug af proceduren Pwencode: * 131203, SB: Test af PWencode Proc pwencode in="&pwd" Filename klip clipbrd Proc pwencode in="&pwd" out=klip Forfatter: Svend Bang, Systemkonsulent Center for Samfundsvidenskabelig IT, Københavns Universitet Øster Farimagsgade 5, 1353 København K. Kontor: CSS, 5.0.20 Tlf.: 3532 3237 - E-post: svend.bang@samf-it.ku.dk Læseren er meget velkommen til at e-skrive eller ringe for at afklare de mystiske detaljer I makrokoden! Kilder: Art Carpenter, 2004. "Carpenter's Complete Guide to the SAS Macro Language, Second Edition". SAS Institute. Det er en fremragende bog både til læsning og til opslag. Den kan købes ved henvendelse til den hjælpsomme Ane Gerken, Sas Institute, DK. Brugen af blank elelr * i makrovariablerne FqrsteGang og Batch er hentet fra &debug side 14 16. Paul D Sherman & Arthur L. Carpenter, 2009. "Secret Sequel: Keeping Your Password Away From the LOG". Artiklen giver et godt overblik over brug af password og dets undertrykkelse i loggen. Teknikken til undertrykkelse og efterfølgende genoplivning af makrooptions er hentet herfra. Leanne Tang, 2012. "Encoding the Password - A low maintenance way to secure your data access". Artiklen er en læseværdig gennemgang af Proc Pwencode.