cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Discussions

Solve problems, and share tips and tricks with other JMP users.
%3CLINGO-SUB%20id%3D%22lingo-sub-627983%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3ERe%3A%20C%C3%B3mo%20manejar%20la%20informaci%C3%B3n%20de%20la%20contrase%C3%B1a%20del%20usuario%20en%20JSL%20(cadenas%20de%20conexi%C3%B3n%20ODBC)%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-627983%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EQuiz%C3%A1%20me%20gusta%20poner%20la%20contrase%C3%B1a%20y%20el%20ID%20de%20usuario%20en%20un%20archivo%20separado%20en%20la%20carpeta%20de%20documentos%20del%20usuario.%20Algo%20como%20esto%3A%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3Ecredenciales.jsl%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3E%7B%22fred%22%2C%221234%22%7D%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3EPuede%20encriptarlo%20si%20lo%20desea%2C%20pero%20eso%20no%20tiene%20sentido%20excepto%20para%20evitar%20que%20su%20perro%20lo%20mire...%3C%2FP%3E%0A%3CP%3EDesde%20la%20aplicaci%C3%B3n%2C%20utilice%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3E%7Busername%2Cpassword%7D%20%3D%20include(%22%24documents%2Fcredentials.jsl%22)%3B%0A...%20use%20the%20credentials%20...%0Ausername%20%3D%20.%3B%20password%20%3D%20.%3B%20%2F%2F%20clear%20the%20variables%20when%20done%20with%20them%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3ELa%20funci%C3%B3n%20de%20inclusi%C3%B3n%20devuelve%20el%20resultado%20de%20la%20%C3%BAltima%20declaraci%C3%B3n%20ejecutada%20en%20el%20archivo%2C%20que%20construy%C3%B3%20la%20lista%20de%202%20elementos.%3C%2FP%3E%0A%3CP%3EHago%20esto%20principalmente%20para%20asegurarme%20de%20que%20no%20estoy%20registrando%20mis%20propias%20credenciales%20en%20un%20sistema%20de%20control%20de%20c%C3%B3digo%20fuente.%20Dado%20que%20el%20archivo%20se%20encuentra%20fuera%20del%20directorio%20del%20proyecto%2C%20no%20se%20recoger%C3%A1%20por%20accidente.%20Lo%20encripto%2C%20con%20la%20esperanza%20de%20que%20cualquiera%20que%20piratee%20mi%20computadora%20no%20tenga%20JMP.%20Es%20posible%20que%20desee%20agregar%20un%20poco%20de%20informaci%C3%B3n%20al%20nombre%20del%20archivo...%20la%20aplicaci%C3%B3n%20que%20lo%20necesita%2C%20el%20servicio%20al%20que%20se%20aplican%20las%20credenciales.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-628109%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3ERe%3A%20C%C3%B3mo%20manejar%20la%20informaci%C3%B3n%20de%20la%20contrase%C3%B1a%20del%20usuario%20en%20JSL%20(cadenas%20de%20conexi%C3%B3n%20ODBC)%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-628109%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3ECreo%20que%20cifrar%20el%20archivo%20ser%C3%A1%20mejor%20que%20tener%20esta%20informaci%C3%B3n%20como%20texto%20sin%20formato.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%C2%BFCu%C3%A1l%20ser%C3%ADa%20la%20respuesta%20completa%2C%20incluido%20un%20paso%20de%20cifrado%2Fdescifrado%20muy%20simple%3F%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-628198%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3ERe%3A%20C%C3%B3mo%20manejar%20la%20informaci%C3%B3n%20de%20la%20contrase%C3%B1a%20del%20usuario%20en%20JSL%20(cadenas%20de%20conexi%C3%B3n%20ODBC)%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-628198%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EConsulte%20mis%20comentarios%20anteriores%3A%20esto%20no%20es%20seguro.%20Pero%20as%C3%AD%20es%20como%20podr%C3%ADa%20poner%20un%20peque%C3%B1o%20bache%20de%20velocidad%20en%20el%20camino%20de%20un%20atacante.%3C%2FP%3E%0A%3CP%3EEncripte%20este%20archivo%20con%20la%20funci%C3%B3n%20encrypt()%2C%20luego%20ejecute%20el%20archivo%20encriptado.%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3E%2F%2F%20Pre-encrypt%20this%20using%20edit-%26gt%3Bencrypt%20script.%20There%0A%2F%2F%20is%20no%20need%20to%20use%20a%20run%20password%2C%20and%20no%20reason%20to%0A%2F%2F%20make%20a%20complicated%20edit%20password.%20%22a%22%20is%20good%20enough.%0A%2F%2F%0A%2F%2F%20Caution%3A%20this%20is%20not%20secure.%20No%20password%20is%20needed%20to%0A%2F%2F%20view%20this%20data%2C%20though%20JMP%20is%20required%20to%20decrypt%20it.%0A%2F%2F%20If%20you%20need%20a%20decrypt%20password%2Bprompt%2C%20you'll%20need%20to%20%0A%2F%2F%20manually%20go%20through%20the%20GUI%20for%20encrypting%20scripts.%0A%2F%2F%20https%3A%2F%2Fcommunity.jmp.com%2Ft5%2FDiscussions%2FHow-to-handle-user-password-information-in-JSL-ODBC-connection%2Fm-p%2F627942%23M82631%0Aencrypt%20%3D%20Function(%20%7Bname%2C%20pass%7D%2C%20%7Bx%7D%2C%0A%20x%20%3D%20Expr(%201%20%2B%201%20)%3B%20%2F%2F%20throw%20an%20error%20if%20not%20working%0A%20%2F%2F%20https%3A%2F%2Fcommunity.jmp.com%2Ft5%2FDiscussions%2FHow-to-check-if-the-running-script-is-encrypted%2Fm-p%2F624766%23M82350%0A%20If(%20Char(%20Name%20Expr(%20x%20)%20)%20%3D%3D%20%221%20%2B%201%22%2C%0A%20%20Throw(%20%22the%20encrypt%20function%20needs%20to%20be%20encrypted%20to%20work%20correctly.%22%20)%0A%20)%3B%0A%20%2F%2F%20strings%20generally%20stay%20unencrypted.%20expressions%20%0A%20%2F%2F%20that%20are%20not%20simple%20strings%20or%20numbers%20try%20to%20stay%0A%20%2F%2F%20encrypted.%20The%20concatenation%20operator%20is%20enough%20to%0A%20%2F%2F%20keep%20the%20expression's%20strings%20encrypted.%0A%20Char(%20Eval%20Expr(%20%7BExpr(%20name%20)%20%7C%7C%20%22%22%2C%20Expr(%20pass%20)%20%7C%7C%20%22%22%7D%20)%20)%3B%20%2F%2F%20return%20value%0A)%3B%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3ELuego%20ejecuta%20esto%20para%20ver%20c%C3%B3mo%20funciona.%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3E%2F%2F%20use%20the%20encrypted%20encrypt%20function%20to%20make%20an%20encrypted%20list%0Aname%20%3D%20%22fred%22%3B%0Apass%20%3D%20%221234%22%3B%0Acrypt%20%3D%20encrypt(%20name%2C%20pass%20)%3B%0AIf(%20length(crypt)%20%26lt%3B%20500%20%2B%20Length(%20pass%20)%20%2B%20Length(%20name%20)%2C%0A%20Throw(%20%22not%20encrypted.%20Did%20you%20execute%20the%20*encrypted*%20file%20containing%20the%20encrypt%20function%3F%22%20)%0A)%3B%0Afile%20%3D%20Save%20Text%20File(%20%22%24temp%2Fcredentials.jsl%22%2C%20crypt%20)%3B%0Aname%20%3D%20.%3B%0Apass%20%3D%20.%3B%0A%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%0A%7Bname%2C%20pass%7D%20%3D%20Eval%20List(%20Parse(%20Load%20Text%20File(%20file%20)%20)%20)%3B%0Awrite(%22%5C!nsaved%20file%20contains%5C!n%22%2CLoad%20Text%20File(%20file%20)%2C%22%5C!n%5C!ndecrypted%20is%22)%3B%0Ashow(name%2Cpass)%3B%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%3CBR%20%2F%3E%3CSTRONG%3Eel%20archivo%20guardado%20contiene%3C%2FSTRONG%3E%3CBR%20%2F%3E%3CSTRONG%3E%20%7BJSL%20cifrado(%22%2F%2F-e12.1%5C!r%5C!n0%2C%5C!r%5C!n208%2C4193eJwNytmBhSAMAMB%2BtgWCCRBUkMuLgP0X8na%2BB3NI2evLjsG330%2FRUttTTEpOYhEyJ7JlBa2j1uAnpks3G3wTgpF7tJ8jqYrL%5C!r%5C%20!nPvBetVXPxNjKIWh06B9i%2BP%2Fzfrd%2Bbo6IP7eUOA3kSsGoaGA1x0ovXovyGmy481u4wqIGYKnEhvuG6XAE4Qk19cmunKo32uGJkuTv%5C!r%5C!nB%20%2BkhNtw%3D%5C!r%5C!n%2C0%2C%22)%2C%20JSL%20cifrado(%22%2F%2F-e12.1%5C!r%5C!n0%2C%5C!r%5C!n208%2C4193eJwNzIkBxBAQAMB%2BrgWE9R1hQ%2Fz0X8jdFDAcfUTDilxLV%2BPeyWbK7YEYHKE3A1bfMa7gUzjO2CxkyPwsVDP%20xS0TN9WNptpRC%5C!r%5C%20!nLxnShipDYKmeKzWIoUTSF6XX%2FfjReuqKrYKwJ9yptTwR2DfaI2j%2FAlFVHd%2FbP3Mqa0cFcuV1KCuTGp9XmOmvrXe9%2BDai8GNZN%2BHz%5C!r%5C!nAxwZN40%3D%5C!r%5C!n%2C0%2C%22)%7D%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3Edescifrado%20es%3C%2FSTRONG%3E%3CBR%20%2F%3E%3CSTRONG%3E%20nombre%20%3D%20%22fredo%22%3B%3C%2FSTRONG%3E%3CBR%20%2F%3E%3CSTRONG%3E%20paso%20%3D%20%221234%22%3B%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EJMP%20no%20incluye%20una%20funci%C3%B3n%20para%20cifrar%20secuencias%20de%20comandos%20mediante%20programaci%C3%B3n%2C%20solo%20la%20GUI%20interactiva.%20Esta%20soluci%C3%B3n%20alternativa%20no%20permite%20especificar%20la%20ejecuci%C3%B3n%20o%20la%20contrase%C3%B1a%20de%20edici%C3%B3n.%20No%20hay%20contrase%C3%B1a%20de%20ejecuci%C3%B3n%20(cualquiera%20puede%20ejecutarla)%20y%20la%20contrase%C3%B1a%20de%20edici%C3%B3n%20es%20desconocida.%20Es%20posible%20que%20prefiera%20una%20soluci%C3%B3n%20diferente%20que%20pusiera%3CSTRONG%3E%20%7B%22fredo%22%2C%221234%22%7D%3C%2FSTRONG%3E%20en%20una%20ventana%20de%20edici%C3%B3n%20y%20deje%20que%20el%20usuario%20lo%20cifre%20manualmente%20(o%20no)%20antes%20de%20guardarlo.%20El%20usuario%20podr%C3%ADa%20entonces%20decidir%20si%20desea%20que%20se%20le%20solicite%20una%20contrase%C3%B1a%20de%20ejecuci%C3%B3n%2C%20lo%20que%20ser%C3%ADa%20un%20poco%20m%C3%A1s%20seguro.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-628239%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3ERe%3A%20C%C3%B3mo%20manejar%20la%20informaci%C3%B3n%20de%20la%20contrase%C3%B1a%20del%20usuario%20en%20JSL%20(cadenas%20de%20conexi%C3%B3n%20ODBC)%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-628239%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EEn%20Windows%20me%20gusta%20usar%20el%20administrador%20de%20credenciales%3A%3C%2FP%3E%0A%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2FJSL-Cookbook-Archived%2FSet-and-get-credentials-in-the-Credential-Manager-via-PowerShell%2Fm-p%2F413797%23U413797%22%20class%3D%22lia-mention-container-editor-message%20lia-img-icon-tkb-thread%20lia-fa-icon%20lia-fa-tkb%20lia-fa-thread%20lia-fa%22%20target%3D%22_blank%22%3EConfigure%20y%20obtenga%20credenciales%20en%20Credential%20Manager%20a%20trav%C3%A9s%20de%20PowerShell%20en%20Windows%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-629018%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3ERe%3A%20C%C3%B3mo%20manejar%20la%20informaci%C3%B3n%20de%20la%20contrase%C3%B1a%20del%20usuario%20en%20JSL%20(cadenas%20de%20conexi%C3%B3n%20ODBC)%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-629018%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EDescribo%20un%20enfoque%20que%20usa%20credenciales%20encriptadas%20en%20esta%20charla%20de%20Discovery%20Summit%3A%3C%2FP%3E%0A%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2FDiscovery-Summit-Americas-2022%2FJMP-and-Oracle-Tips-and-Tricks-for-a-Happy-Marriage-2022-US-30MP%2Fta-p%2F505583%22%20target%3D%22_blank%22%3Ehttps%3A%2F%2Fcommunity.jmp.com%2Ft5%2FDiscovery-Summit-Americas-2022%2FJMP-and-Oracle-Tips-and-Tricks-for-a-Happy-Marriage-2022-US-30MP%2Fta-p%2F%20505583%3C%2FA%3E%3C%2FP%3E%0A%3CP%3EBusque%20la%20secci%C3%B3n%20%22Ocultar%20la%20contrase%C3%B1a%22.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-629082%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3ERe%3A%20C%C3%B3mo%20manejar%20la%20informaci%C3%B3n%20de%20la%20contrase%C3%B1a%20del%20usuario%20en%20JSL%20(cadenas%20de%20conexi%C3%B3n%20ODBC)%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-629082%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EOracle%20acept%C3%B3%20esto%20como%20una%20de%20las%20bases%20de%20datos.%20Gracias%20por%20el%20tutorial%20detallado.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-627942%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EC%C3%B3mo%20manejar%20la%20informaci%C3%B3n%20de%20la%20contrase%C3%B1a%20del%20usuario%20en%20JSL%20(cadenas%20de%20conexi%C3%B3n%20ODBC)%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-627942%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EMe%20estoy%20conectando%20a%20una%20base%20de%20datos%20usando%20ODBC%2C%20que%20tiene%20un%20usuario%20y%20una%20contrase%C3%B1a%20espec%C3%ADficos%20creados%20para%20ese%20prop%C3%B3sito%20(no%20es%20posible%20usar%20Windows%20Active%20Directory%20u%20otro).%3CBR%20%2F%3E%3CBR%20%2F%3E%20Cuando%20se%20genera%20la%20consulta%2C%20el%20script%20de%20la%20tabla%20almacena%20el%20ID%20de%20usuario.%3CBR%20%2F%3E%3CBR%20%2F%3E%20Se%20solicita%20la%20contrase%C3%B1a%2C%20pero%20tambi%C3%A9n%20se%20puede%20codificar%20directamente%20en%20la%20cadena%20de%20conexi%C3%B3n%20en%20JSL.%3CBR%20%2F%3E%3CBR%20%2F%3E%20%C2%BFCu%C3%A1les%20son%20las%20mejores%20opciones%20para%20manejar%20tales%20situaciones%20en%20JSL%3F%3CBR%20%2F%3E%3CBR%20%2F%3E%20Los%20archivos%20JMP%20se%20pueden%20compartir%2C%20pero%20las%20actualizaciones%20deben%20solicitar%20un%20usuario%20y%20una%20contrase%C3%B1a%20espec%C3%ADficos%20cuando%20se%20ejecutan%20por%20primera%20vez.%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-627942%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CLINGO-LABEL%3EAutomatizaci%C3%B3n%20y%20secuencias%20de%20comandos%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EAcceso%20a%20los%20datos%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-665103%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3ERe%3A%20C%C3%B3mo%20manejar%20la%20informaci%C3%B3n%20de%20la%20contrase%C3%B1a%20del%20usuario%20en%20JSL%20(cadenas%20de%20conexi%C3%B3n%20ODBC)%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-665103%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EEncontr%C3%A9%20un%20enfoque%20similar%20en%20esta%20discusi%C3%B3n%20de%202018%3A%3CBR%20%2F%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2FDiscussions%2FDatabase-Connection-with-login-prompt%2Fm-p%2F86285%23U86285%22%20class%3D%22lia-mention-container-editor-message%20lia-img-icon-forum-thread%20lia-fa-icon%20lia-fa-forum%20lia-fa-thread%20lia-fa%22%20target%3D%22_blank%22%3E%20Conexi%C3%B3n%20de%20base%20de%20datos%20con%20indicador%20de%20inicio%20de%20sesi%C3%B3n%3C%2FA%3E%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%C2%BFCu%C3%A1l%20es%20el%20beneficio%20de%20cifrar%20el%20c%C3%B3digo%20para%20conectarse%20a%20la%20base%20de%20datos%3F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-684606%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3ERe%3A%20C%C3%B3mo%20manejar%20la%20informaci%C3%B3n%20de%20la%20contrase%C3%B1a%20del%20usuario%20en%20JSL%20(cadenas%20de%20conexi%C3%B3n%20ODBC)%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-684606%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3ESi%20hay%20un%20c%C3%B3digo%20JSL%20disponible%20que%20se%20puede%20ejecutar%20para%20abrir%20una%20conexi%C3%B3n%20a%20la%20base%20de%20datos%2C%20todos%20los%20usuarios%20con%20este%20c%C3%B3digo%20(cifrado%20o%20no)%20pueden%20acceder%20a%20la%20base%20de%20datos.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EPor%20lo%20tanto%2C%20es%20esencial%20establecer%20un%3CSTRONG%3E%20Ejecutar%20contrase%C3%B1a%3C%2FSTRONG%3E%20%C2%BFPara%20evitar%20que%20los%20usuarios%20utilicen%20el%20fragmento%20sin%20permiso%3F%3C%2FP%3E%3CP%3EPor%20otro%20lado%2C%20con%20la%20contrase%C3%B1a%20de%20ejecuci%C3%B3n%2C%20resulta%20bastante%20inc%C3%B3modo%20utilizar%20el%20c%C3%B3digo%20autom%C3%A1ticamente.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-684607%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3ERe%3A%20C%C3%B3mo%20manejar%20la%20informaci%C3%B3n%20de%20la%20contrase%C3%B1a%20del%20usuario%20en%20JSL%20(cadenas%20de%20conexi%C3%B3n%20ODBC)%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-684607%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EYo%20dir%C3%ADa%20que%20no%20comparta%20un%20c%C3%B3digo%20de%20este%20tipo%20que%20no%20deber%C3%ADa%20ser%20utilizado%20por%20todos%20(si%20no%20desea%20establecer%20una%20contrase%C3%B1a%20de%20ejecuci%C3%B3n).%20Crear%20usuarios%20espec%C3%ADficos%20tambi%C3%A9n%20podr%C3%ADa%20ayudar%20(al%20menos%20as%C3%AD%20podr%C3%A1%20cambiar%20m%C3%A1s%20f%C3%A1cilmente%20la%20contrase%C3%B1a%2Fdeshabilitar%20ese%20usuario)%20e%20incorporar%20a%20TI%20para%20que%20puedan%20verificar%20qui%C3%A9n%20realiza%20qu%C3%A9%20consultas%20y%20qu%C3%A9%20y%20tomar%20las%20medidas%20correspondientes.%3C%2FP%3E%0A%3CP%3ETambi%C3%A9n%20es%20muy%20probable%20que%20puedas%20usar%20el%20administrador%20de%20credenciales%20(si%20est%C3%A1s%20en%20Windows)%20para%20administrar%20esas%20contrase%C3%B1as%20como%3CA%20href%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F6657%22%20target%3D%22_blank%22%3E%20%40ih%3C%2FA%3E%20sugiri%C3%B3%20(para%20que%20no%20tenga%20que%20almacenarlos%20en%20el%20archivo%20jsl).%20No%20he%20usado%20(todav%C3%ADa)%20el%20administrador%20de%20credenciales%20con%20JMP%2C%20pero%20lo%20us%C3%A9%20al%20crear%20RPA%20(automatizaci%C3%B3n%20rob%C3%B3tica%20de%20procesos)%20y%20funcion%C3%B3%20muy%20bien.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-684608%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3ERe%3A%20C%C3%B3mo%20manejar%20la%20informaci%C3%B3n%20de%20la%20contrase%C3%B1a%20del%20usuario%20en%20JSL%20(cadenas%20de%20conexi%C3%B3n%20ODBC)%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-684608%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EEsto%20es%20parte%20de%20por%20qu%C3%A9%20me%20gusta%20usar%20el%20almac%C3%A9n%20de%20credenciales%20de%20Windows%3A%20la%20contrase%C3%B1a%20simplemente%20no%20est%C3%A1%20disponible%20para%20otros%20usuarios.Almacenar%20el%20c%C3%B3digo%20o%20los%20archivos%20que%20contienen%20esas%20credenciales%20en%20un%20lugar%20al%20que%20solo%20pueden%20acceder%20personas%20seleccionadas%20podr%C3%ADa%20tener%20un%20efecto%20similar.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-748129%22%20slang%3D%22de-DE%22%20mode%3D%22CREATE%22%3ERe%3A%20C%C3%B3mo%20manejar%20la%20informaci%C3%B3n%20de%20la%20contrase%C3%B1a%20del%20usuario%20en%20JSL%20(cadenas%20de%20conexi%C3%B3n%20ODBC)%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-748129%22%20slang%3D%22de-DE%22%20mode%3D%22CREATE%22%3E%3CP%3EQu%C3%A9%20tal%20esto%3A%3CBR%20%2F%3E%3CBR%20%2F%3E%20Utilice%20los%20derechos%20de%20Windows%20AD%20para%20controlar%20el%20acceso%20a%20la%20base%20de%20datos%3A%3C%2FP%3E%3CUL%3E%3CLI%3Egenerar%20un%20script%20para%20acceder%20a%20la%20base%20de%20datos%2C%20incluidos%20los%20derechos%20de%20acceso%20a%20la%20base%20de%20datos%3C%2FLI%3E%3CLI%3Ecifrar%20el%20archivo%20en%20JMP%20de%20modo%20que%20ning%C3%BAn%20usuario%20pueda%20ver%20la%20contrase%C3%B1a%20en%20texto%20sin%20formato%3C%2FLI%3E%3CLI%3Edentro%20del%20script%2C%20intente%20acceder%20a%20un%20archivo%20en%20un%20recurso%20compartido%20de%20red%20con%20derechos%20de%20acceso%20AD%3CBR%20%2F%3E%20Si%20a%20un%20usuario%20se%20le%20permite%20acceder%20al%20archivo%2C%20puede%20utilizar%20el%20acceso%20a%20la%20base%20de%20datos.%3CBR%20%2F%3E%20para%20un%20usuario%20sin%20derechos%20de%20acceso%2C%20el%20script%20solo%20mostrar%C3%A1%20el%20mensaje%20de%20error%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FLI%3E%3C%2FUL%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3EqueryDB%20%3D%20Function(%20%7BSQLString%7D%2C%0A%09pwd%20%3D%20Load%20Text%20File(%20%22network%20path%20with%20AD%20rights%22%20)%3B%0A%09If(%20pwd%20%3D%20%22my%20secret%20password%22%2C%0A%09%09result%20%3D%20New%20SQL%20Query(%0A%09%09%09Connection(%20%22ODBC%3ADSN%3Ddatabase%3BPWD%3Dxxx%22%20)%2C%0A%09%09%09QueryName(%20%22new%22%20)%2C%0A%09%09%09CustomSQL(%20SQLString%20)%0A%09%09)%2C%0A%09%09Caption(%20%22no%20access%20rights%22%20)%0A%09)%09%0A)%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E
Choose Language Hide Translation Bar
FN
FN
Level VI

How to handle user password information in JSL ( ODBC connection strings )

I am connecting to a database using ODBC, which has a specific user and password created for that purpose (not possible to use windows Active Directory, or other).

When the query is built, the table script stores the user ID.

Password is asked but it can also be coded directly into the connecting string in JSL.

What are the best options to handle such situations in JSL?

JMP files may be shared but updates should ask for specific user and password when executed for the first time.
11 REPLIES 11
ih
Super User (Alumni) ih
Super User (Alumni)

Re: How to handle user password information in JSL ( ODBC connection strings )

This is part of why I like using the windows credential store: the password just is not available to other users.  Storing the code or files containing those credentials in a place only accessible by select people might have a similar effect.

hogi
Level XIII

Re: How to handle user password information in JSL ( ODBC connection strings )

How about this:

use Windows AD rights to control the database access:

  • generate a script to access the database - including the access rights for the database
  • encrypt the file in JMP such that no user can see the password in plain text
  • inside the script, try to access a file on a network share with AD access rights
    if a user is allowed to access the file, he can use the database access.
    for a user without access rights, the script will just show the error message

queryDB = Function( {SQLString},
	pwd = Load Text File( "network path with AD rights" );
	If( pwd = "my secret password",
		result = New SQL Query(
			Connection( "ODBC:DSN=database;PWD=xxx" ),
			QueryName( "new" ),
			CustomSQL( SQLString )
		),
		Caption( "no access rights" )
	)	
)

Recommended Articles