{"id":171,"date":"2017-08-17T00:18:50","date_gmt":"2017-08-17T00:18:50","guid":{"rendered":"http:\/\/www.mrmarkyoung.com\/oracle\/?p=171"},"modified":"2018-06-04T16:48:44","modified_gmt":"2018-06-04T06:48:44","slug":"change-passwords-in-oracle-with-python","status":"publish","type":"post","link":"http:\/\/www.mrmarkyoung.com\/oracle\/2017\/08\/17\/change-passwords-in-oracle-with-python\/","title":{"rendered":"Change passwords in Oracle with Python"},"content":{"rendered":"<p>Write the contents out to a CSV file<\/p>\n<pre class=\"lang:default decode:true \" >import sys\r\nimport cx_Oracle\r\nimport os\r\n\r\ndef printf (format,*args):\r\n  sys.stdout.write (format % args)\r\n\r\ndef printException (exception):\r\n  error, = exception.args\r\n  printf (\"Error code = %s\\n\",error.code);\r\n  printf (\"Error message = %s\\n\",error.message);\r\n\r\nusername = sys.argv[1]\r\npassword = sys.argv[2]\r\ndatabaseName = sys.argv[3]\r\nnew_user = sys.argv[4]\r\nnew_password = sys.argv[5]\r\n\r\nprint('Connecting to ' + databaseName)\r\ntry:\r\n  connection = cx_Oracle.connect (username,password,databaseName)\r\nexcept cx_Oracle.DatabaseError as e:\r\n  error, = e.args\r\n  printf ('Failed to connect to %s\\n',databaseName)\r\n  printException (exception)\r\n\r\ncursor = connection.cursor ()\r\n\r\ntry:\r\n    print('Changing account password.....')\r\n    cursor.execute (\"alter user \" + new_user + \" identified by \" + new_password)\r\nexcept cx_Oracle.DatabaseError as e:\r\n    error, = e.args\r\n    printf ('Failed to get host and instance_name\\n')\r\n    printException (exception)\r\n    exit (1)\r\nprint('Password changed for USER')\r\n\r\nexit(0)\r\n<\/pre>\n<p>Write the output to a csv file.<\/p>\n<pre class=\"lang:default decode:true \" >#!\/usr\/bin\/python\r\n# Example of fetchone\r\n\r\nimport sys\r\nimport cx_Oracle\r\n\r\ndef printf (format,*args):\r\n  sys.stdout.write (format % args)\r\n\r\ndef printException (exception):\r\n  error, = exception.args\r\n  printf (\"Error code = %s\\n\",error.code);\r\n  printf (\"Error message = %s\\n\",error.message);\r\n\r\nusername = 'system'\r\npassword = 'testpassword'\r\ndatabaseName = sys.argv[1]\r\n\r\ntry:\r\n  connection = cx_Oracle.connect (username,password,databaseName)\r\nexcept cx_Oracle.DatabaseError as e:\r\n  error, = e.args\r\n  printf ('Failed to connect to %s\\n',databaseName)\r\n  printException (exception)\r\n  exit (1)\r\n\r\ncursor = connection.cursor ()\r\n\r\ntry:\r\n  cursor.execute (\"select * from dba_role_privs where granted_role='DBA'\")\r\nexcept cx_Oracle.DatabaseError as e:\r\n  error, = e.args\r\n  printf ('Failed to get host and instance_name\\n')\r\n  printException (exception)\r\n  exit (1)\r\n\r\nfor result in cursor:\r\n    f = open('user_audit.csv', 'a')\r\n    f.write(databaseName)\r\n    f.write('\\n')\r\n    f.write(str(result))\r\n    f.write('\\n')\r\n    f.write('--------------------------------------------------------------\\n')\r\n    f.write('\\n')\r\n    f.close()\r\n\r\ncursor.close ()\r\nconnection.close ()\r\nexit (0)\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Write the contents out to a CSV file import sys import cx_Oracle import os def printf (format,*args): sys.stdout.write (format % args) def printException (exception): error, = exception.args printf (&#8220;Error code = %s\\n&#8221;,error.code); printf (&#8220;Error message = %s\\n&#8221;,error.message); username = sys.argv[1] password = sys.argv[2] databaseName = sys.argv[3] new_user = sys.argv[4] new_password = sys.argv[5] print(&#8216;Connecting to &#8216; &#8230; <a title=\"Change passwords in Oracle with Python\" class=\"read-more\" href=\"http:\/\/www.mrmarkyoung.com\/oracle\/2017\/08\/17\/change-passwords-in-oracle-with-python\/\" aria-label=\"Read more about Change passwords in Oracle with Python\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[64,48,31],"class_list":["post-171","post","type-post","status-publish","format-standard","hentry","category-oracle-database","tag-oracle","tag-password","tag-python"],"_links":{"self":[{"href":"http:\/\/www.mrmarkyoung.com\/oracle\/wp-json\/wp\/v2\/posts\/171","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.mrmarkyoung.com\/oracle\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.mrmarkyoung.com\/oracle\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.mrmarkyoung.com\/oracle\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.mrmarkyoung.com\/oracle\/wp-json\/wp\/v2\/comments?post=171"}],"version-history":[{"count":5,"href":"http:\/\/www.mrmarkyoung.com\/oracle\/wp-json\/wp\/v2\/posts\/171\/revisions"}],"predecessor-version":[{"id":180,"href":"http:\/\/www.mrmarkyoung.com\/oracle\/wp-json\/wp\/v2\/posts\/171\/revisions\/180"}],"wp:attachment":[{"href":"http:\/\/www.mrmarkyoung.com\/oracle\/wp-json\/wp\/v2\/media?parent=171"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.mrmarkyoung.com\/oracle\/wp-json\/wp\/v2\/categories?post=171"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.mrmarkyoung.com\/oracle\/wp-json\/wp\/v2\/tags?post=171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}