Skip to content

Commit 825d8ff

Browse files
committed
Add support in dba_script.py for custom jdbc url in SQL Server
1 parent ae9051f commit 825d8ff

File tree

7 files changed

+272
-22
lines changed

7 files changed

+272
-22
lines changed

.github/workflows/maven.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,5 +143,6 @@ jobs:
143143
144144
- name: View sql server logs
145145
run: |
146+
sleep 30
146147
docker logs ranger-sqlserver
147-
148+
docker logs ranger

dev-support/ranger-docker/Dockerfile.ranger

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@ FROM ranger AS ranger_sqlserver
6262
COPY ./downloads/mssql-jdbc-12.8.1.jre8.jar /home/ranger/dist/
6363
RUN mv /home/ranger/dist/mssql-jdbc-12.8.1.jre8.jar /usr/share/java/mssql.jar
6464

65+
# to trust the self-signed certificate
66+
ENV JAVA_OPTS="${JAVA_OPTS} -DtrustServerCertificate=true"
67+
6568
FROM ranger_${RANGER_DB_TYPE}
6669

6770
USER ranger

dev-support/ranger-docker/config/init_mssql.sh

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ RETRIES=30 # Number of retries
2424
SLEEP_INTERVAL=5 # Seconds to wait between retries
2525
for i in $(seq 1 $RETRIES); do
2626
# Try to connect to SQL Server
27-
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "rangerR0cks!" -Q "SELECT 1" > /dev/null 2>&1
27+
/opt/mssql-tools18/bin/sqlcmd -S localhost -U SA -P "rangerR0cks!" -Q "SELECT 1" -C > /dev/null 2>&1
2828
if [ $? -eq 0 ]; then
2929
echo "SQL Server is ready!"
3030
break
@@ -39,17 +39,6 @@ if [ $i -eq $RETRIES ]; then
3939
exit 1
4040
fi
4141

42-
# Disable SSL encryption by setting 'force encryption' to 0
43-
echo "Disabling SSL encryption..."
44-
/opt/mssql-tools18/bin/sqlcmd -S localhost -U SA -P 'rangerR0cks!' -Q "
45-
EXEC sp_configure 'show advanced options', 1;
46-
RECONFIGURE;
47-
EXEC sp_configure 'force encryption', 0;
48-
RECONFIGURE;
49-
"
50-
echo "SSL encryption disabled."
51-
52-
5342
/opt/mssql-tools18/bin/sqlcmd -S localhost -U SA -P 'rangerR0cks!' -Q "
5443
5544
-- Set the database context

dev-support/ranger-docker/scripts/ranger-admin-install-sqlserver.properties

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@ oracle_audit_file=db/oracle/xa_audit_db_oracle.sql
4141
sqlserver_core_file=db/sqlserver/optimized/current/ranger_core_db_sqlserver.sql
4242
sqlserver_audit_file=db/sqlserver/xa_audit_db_sqlserver.sql
4343

44+
# For over-riding the jdbc url
45+
is_override_db_connection_string=true
46+
db_override_jdbc_connection_string="jdbc:sqlserver://ranger-db;databaseName=ranger;trustServerCertificate=true;"
47+
4448
rangerAdmin_password=rangerR0cks!
4549
rangerTagsync_password=rangerR0cks!
4650
rangerUsersync_password=rangerR0cks!
Lines changed: 222 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,222 @@
1+
# Licensed to the Apache Software Foundation (ASF) under one or more
2+
# contributor license agreements. See the NOTICE file distributed with
3+
# this work for additional information regarding copyright ownership.
4+
# The ASF licenses this file to You under the Apache License, Version 2.0
5+
# (the "License"); you may not use this file except in compliance with
6+
# the License. You may obtain a copy of the License at
7+
#
8+
# http://www.apache.org/licenses/LICENSE-2.0
9+
#
10+
# Unless required by applicable law or agreed to in writing, software
11+
# distributed under the License is distributed on an "AS IS" BASIS,
12+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
# See the License for the specific language governing permissions and
14+
# limitations under the License.
15+
16+
#
17+
# This file provides a list of the deployment variables for the Ranger KMS Web Application
18+
#
19+
20+
PYTHON_COMMAND_INVOKER=python3
21+
DB_FLAVOR=POSTGRES
22+
SQL_CONNECTOR_JAR=/usr/share/java/postgresql.jar
23+
24+
db_root_user=postgres
25+
db_root_password=rangerR0cks!
26+
db_host=ranger-db
27+
28+
db_name=rangerkms
29+
db_user=rangerkms
30+
db_password=rangerR0cks!
31+
32+
# Following variables are referenced in db_setup.py. Do not remove these
33+
mysql_core_file=db/mysql/kms_core_db.sql
34+
postgres_core_file=db/postgres/kms_core_db_postgres.sql
35+
sqlserver_core_file=db/sqlserver/kms_core_db_sqlserver.sql
36+
oracle_core_file=
37+
sqlanywhere_core_file=
38+
39+
# For over-riding the jdbc url
40+
is_override_db_connection_string=true
41+
db_override_jdbc_connection_string="jdbc:sqlserver://ranger-db;databaseName=rangerkms;trustServerCertificate=true;"
42+
43+
44+
#SSL config
45+
db_ssl_enabled=false
46+
db_ssl_required=false
47+
db_ssl_verifyServerCertificate=false
48+
#db_ssl_auth_type=1-way|2-way, where 1-way represents standard one way ssl authentication and 2-way represents mutual ssl authentication
49+
db_ssl_auth_type=2-way
50+
javax_net_ssl_keyStore=
51+
javax_net_ssl_keyStorePassword=
52+
javax_net_ssl_trustStore=
53+
javax_net_ssl_trustStorePassword=
54+
javax_net_ssl_trustStore_type=jks
55+
javax_net_ssl_keyStore_type=jks
56+
57+
# For postgresql db
58+
db_ssl_certificate_file=
59+
60+
#------------------------- DB CONFIG - END ----------------------------------
61+
#KMS Server config
62+
ranger_kms_http_enabled=true
63+
ranger_kms_https_keystore_file=
64+
ranger_kms_https_keystore_keyalias=rangerkms
65+
ranger_kms_https_keystore_password=
66+
67+
#------------------------- RANGER KMS Install Dir ------------------
68+
COMPONENT_INSTALL_DIR_NAME=/opt/ranger/kms
69+
70+
#------------------------- RANGER KMS Master Key Crypt Key ------------------
71+
KMS_MASTER_KEY_PASSWD=Str0ngPassw0rd
72+
73+
#------------------------- Ranger KMS Kerberos Configuration ---------------------------
74+
kms_principal=
75+
kms_keytab=
76+
hadoop_conf=
77+
78+
#------------------------- Ranger KMS HSM CONFIG ------------------------------
79+
HSM_TYPE=LunaProvider
80+
HSM_ENABLED=false
81+
HSM_PARTITION_NAME=par19
82+
HSM_PARTITION_PASSWORD=S@fenet123
83+
84+
#------------------------- Ranger SAFENET KEYSECURE CONFIG ------------------------------
85+
KEYSECURE_ENABLED=false
86+
KEYSECURE_USER_PASSWORD_AUTHENTICATION=true
87+
KEYSECURE_MASTERKEY_NAME=safenetkeysecure
88+
KEYSECURE_USERNAME=user1
89+
KEYSECURE_PASSWORD=t1e2s3t4
90+
KEYSECURE_HOSTNAME=SunPKCS11-keysecurehn
91+
KEYSECURE_MASTER_KEY_SIZE=256
92+
KEYSECURE_LIB_CONFIG_PATH=/opt/safenetConf/64/8.3.1/sunpkcs11.cfg
93+
94+
#------------------------- Ranger Azure Key Vault ------------------------------
95+
AZURE_KEYVAULT_ENABLED=false
96+
AZURE_KEYVAULT_SSL_ENABLED=false
97+
AZURE_CLIENT_ID=50fd7ca6-fd4f-4785-a13f-1a6cc4e95e42
98+
AZURE_CLIENT_SECRET=<AzureKeyVaultPassword>
99+
AZURE_AUTH_KEYVAULT_CERTIFICATE_PATH=/home/machine/Desktop/azureAuthCertificate/keyvault-MyCert.pfx
100+
# Initialize below prop if your certificate file has any password
101+
#AZURE_AUTH_KEYVAULT_CERTIFICATE_PASSWORD=certPass
102+
AZURE_MASTERKEY_NAME=RangerMasterKey
103+
# E.G. RSA, RSA_HSM, EC, EC_HSM, OCT
104+
AZURE_MASTER_KEY_TYPE=RSA
105+
# E.G. RSA_OAEP, RSA_OAEP_256, RSA1_5, RSA_OAEP
106+
ZONE_KEY_ENCRYPTION_ALGO=RSA_OAEP
107+
AZURE_KEYVAULT_URL=https://shahkeyvault.vault.azure.net/
108+
109+
#------------------------- Ranger Google Cloud HSM ------------------------------
110+
IS_GCP_ENABLED=false
111+
GCP_KEYRING_ID=
112+
GCP_CRED_JSON_FILE=/full/path/to/credfile.json
113+
GCP_PROJECT_ID=
114+
GCP_LOCATION_ID=
115+
GCP_MASTER_KEY_NAME=MyMasterKeyNameChangeIt
116+
117+
#------------------------- Ranger Tencent KMS ------------------------------
118+
TENCENT_KMS_ENABLED=false
119+
TENCENT_MASTERKEY_ID=b756b016-6e11-11ec-a735-525400fe0300
120+
TENCENT_CLIENT_ID=AKIDrXx6ybx2qNdiaBWaNs76pGQJvFJ6crpW
121+
TENCENT_CLIENT_SECRET=<TencentSecretKey>
122+
TENCENT_CLIENT_REGION=ap-beijing
123+
124+
# ------- UNIX User CONFIG ----------------
125+
#
126+
unix_user=rangerkms
127+
unix_user_pwd=kms
128+
unix_group=ranger
129+
130+
#
131+
# ------- UNIX User CONFIG - END ----------------
132+
#
133+
134+
POLICY_MGR_URL=http://ranger:6080
135+
REPOSITORY_NAME=dev_kms
136+
137+
# AUDIT configuration with V3 properties
138+
XAAUDIT.SOLR.IS_ENABLED=true
139+
XAAUDIT.SOLR.MAX_QUEUE_SIZE=1
140+
XAAUDIT.SOLR.MAX_FLUSH_INTERVAL_MS=1000
141+
XAAUDIT.SOLR.SOLR_URL=http://ranger-solr:8983/solr/ranger_audits
142+
XAAUDIT.SUMMARY.ENABLE=true
143+
144+
# Following properties are needed to get past installation script! Please don't remove
145+
XAAUDIT.HDFS.IS_ENABLED=false
146+
XAAUDIT.HDFS.DESTINATION_DIRECTORY=/ranger/audit
147+
XAAUDIT.HDFS.DESTINTATION_FILE=hive
148+
XAAUDIT.HDFS.DESTINTATION_FLUSH_INTERVAL_SECONDS=900
149+
XAAUDIT.HDFS.DESTINTATION_ROLLOVER_INTERVAL_SECONDS=86400
150+
XAAUDIT.HDFS.DESTINTATION_OPEN_RETRY_INTERVAL_SECONDS=60
151+
XAAUDIT.HDFS.LOCAL_BUFFER_DIRECTORY=/var/log/hive/audit
152+
XAAUDIT.HDFS.LOCAL_ARCHIVE_DIRECTORY=/var/log/hive/audit/archive
153+
XAAUDIT.HDFS.LOCAL_BUFFER_FILE=%time:yyyyMMdd-HHmm.ss%.log
154+
XAAUDIT.HDFS.LOCAL_BUFFER_FLUSH_INTERVAL_SECONDS=60
155+
XAAUDIT.HDFS.LOCAL_BUFFER_ROLLOVER_INTERVAL_SECONDS=600
156+
XAAUDIT.HDFS.LOCAL_ARCHIVE_MAX_FILE_COUNT=10
157+
158+
XAAUDIT.SOLR.ENABLE=true
159+
XAAUDIT.SOLR.URL=http://ranger-solr:8983/solr/ranger_audits
160+
XAAUDIT.SOLR.USER=NONE
161+
XAAUDIT.SOLR.PASSWORD=NONE
162+
XAAUDIT.SOLR.ZOOKEEPER=NONE
163+
XAAUDIT.SOLR.FILE_SPOOL_DIR=/var/log/hive/audit/solr/spool
164+
165+
XAAUDIT.ELASTICSEARCH.ENABLE=false
166+
XAAUDIT.ELASTICSEARCH.URL=NONE
167+
XAAUDIT.ELASTICSEARCH.USER=NONE
168+
XAAUDIT.ELASTICSEARCH.PASSWORD=NONE
169+
XAAUDIT.ELASTICSEARCH.INDEX=NONE
170+
XAAUDIT.ELASTICSEARCH.PORT=NONE
171+
XAAUDIT.ELASTICSEARCH.PROTOCOL=NONE
172+
173+
XAAUDIT.HDFS.ENABLE=true
174+
XAAUDIT.HDFS.HDFS_DIR=hdfs://ranger-hadoop:9000/ranger/audit
175+
XAAUDIT.HDFS.FILE_SPOOL_DIR=/var/log/hive/audit/hdfs/spool
176+
177+
XAAUDIT.HDFS.AZURE_ACCOUNTNAME=__REPLACE_AZURE_ACCOUNT_NAME
178+
XAAUDIT.HDFS.AZURE_ACCOUNTKEY=__REPLACE_AZURE_ACCOUNT_KEY
179+
XAAUDIT.HDFS.AZURE_SHELL_KEY_PROVIDER=__REPLACE_AZURE_SHELL_KEY_PROVIDER
180+
XAAUDIT.HDFS.AZURE_ACCOUNTKEY_PROVIDER=__REPLACE_AZURE_ACCOUNT_KEY_PROVIDER
181+
182+
XAAUDIT.LOG4J.ENABLE=false
183+
XAAUDIT.LOG4J.IS_ASYNC=false
184+
XAAUDIT.LOG4J.ASYNC.MAX.QUEUE.SIZE=10240
185+
XAAUDIT.LOG4J.ASYNC.MAX.FLUSH.INTERVAL.MS=30000
186+
XAAUDIT.LOG4J.DESTINATION.LOG4J=false
187+
XAAUDIT.LOG4J.DESTINATION.LOG4J.LOGGER=xaaudit
188+
189+
XAAUDIT.AMAZON_CLOUDWATCH.ENABLE=false
190+
XAAUDIT.AMAZON_CLOUDWATCH.LOG_GROUP=NONE
191+
XAAUDIT.AMAZON_CLOUDWATCH.LOG_STREAM_PREFIX=NONE
192+
XAAUDIT.AMAZON_CLOUDWATCH.FILE_SPOOL_DIR=NONE
193+
XAAUDIT.AMAZON_CLOUDWATCH.REGION=NONE
194+
195+
SSL_KEYSTORE_FILE_PATH=/etc/hive/conf/ranger-plugin-keystore.jks
196+
SSL_KEYSTORE_PASSWORD=myKeyFilePassword
197+
SSL_TRUSTSTORE_FILE_PATH=/etc/hive/conf/ranger-plugin-truststore.jks
198+
SSL_TRUSTSTORE_PASSWORD=changeit
199+
200+
201+
# Custom log directory path
202+
RANGER_KMS_LOG_DIR=/var/log/ranger/kms
203+
204+
#PID file path
205+
RANGER_KMS_PID_DIR_PATH=/var/run/ranger_kms
206+
# ################# DO NOT MODIFY ANY VARIABLES BELOW #########################
207+
#
208+
# --- These deployment variables are not to be modified unless you understand the full impact of the changes
209+
#
210+
################################################################################
211+
KMS_DIR=$PWD
212+
app_home=$PWD/ews/webapp
213+
TMPFILE=$PWD/.fi_tmp
214+
LOGFILE=$PWD/logfile
215+
216+
JAVA_BIN='java'
217+
JAVA_VERSION_REQUIRED='1.8'
218+
JAVA_ORACLE='Java(TM) SE Runtime Environment'
219+
220+
cred_keystore_filename=$app_home/WEB-INF/classes/conf/.jceks/rangerkms.jceks
221+
222+
KMS_BLACKLIST_DECRYPT_EEK=hdfs

kms/scripts/dba_script.py

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -825,19 +825,27 @@ def writeDrymodeCmd(self, xa_db_root_user, xa_db_root_password, db_user, db_pass
825825

826826
class SqlServerConf(BaseDB):
827827
# Constructor
828-
def __init__(self, host, SQL_CONNECTOR_JAR, JAVA_BIN):
828+
def __init__(self, host, SQL_CONNECTOR_JAR, JAVA_BIN, is_db_override_jdbc_connection_string, db_override_jdbc_connection_string):
829829
self.host = host
830830
self.SQL_CONNECTOR_JAR = SQL_CONNECTOR_JAR
831831
self.JAVA_BIN = JAVA_BIN
832+
self.is_db_override_jdbc_connection_string = is_db_override_jdbc_connection_string
833+
self.db_override_jdbc_connection_string = db_override_jdbc_connection_string
832834

833835
def get_jisql_cmd(self, user, password, db_name):
834836
#TODO: User array for forming command
835837
path = RANGER_KMS_HOME
836838
self.JAVA_BIN = self.JAVA_BIN.strip("'")
837839
if is_unix:
838-
jisql_cmd = "%s -cp %s:%s/jisql/lib/* org.apache.util.sql.Jisql -user %s -p '%s' -driver mssql -cstring jdbc:sqlserver://%s\\;databaseName=%s -noheader -trim"%(self.JAVA_BIN, self.SQL_CONNECTOR_JAR, path,user, password, self.host,db_name)
840+
if self.is_db_override_jdbc_connection_string == 'true' and self.db_override_jdbc_connection_string is not None and len(self.db_override_jdbc_connection_string) > 0:
841+
jisql_cmd = "%s -cp %s:%s/jisql/lib/* org.apache.util.sql.Jisql -user %s -p '%s' -driver mssql -cstring %s -noheader -trim"%(self.JAVA_BIN, self.SQL_CONNECTOR_JAR, path, user, password, self.db_override_jdbc_connection_string)
842+
else:
843+
jisql_cmd = "%s -cp %s:%s/jisql/lib/* org.apache.util.sql.Jisql -user %s -p '%s' -driver mssql -cstring jdbc:sqlserver://%s\\;databaseName=%s -noheader -trim"%(self.JAVA_BIN, self.SQL_CONNECTOR_JAR, path,user, password, self.host,db_name)
839844
elif os_name == "WINDOWS":
840-
jisql_cmd = "%s -cp %s;%s\\jisql\\lib\\* org.apache.util.sql.Jisql -user %s -p \"%s\" -driver mssql -cstring jdbc:sqlserver://%s;databaseName=%s -noheader -trim"%(self.JAVA_BIN, self.SQL_CONNECTOR_JAR, path, user, password, self.host,db_name)
845+
if self.is_db_override_jdbc_connection_string == 'true' and self.db_override_jdbc_connection_string is not None and len(self.db_override_jdbc_connection_string) > 0:
846+
jisql_cmd = "%s -cp %s;%s\\jisql\\lib\\* org.apache.util.sql.Jisql -user %s -p \"%s\" -driver mssql -cstring %s -noheader -trim"%(self.JAVA_BIN, self.SQL_CONNECTOR_JAR, path, user, password, self.db_override_jdbc_connection_string)
847+
else:
848+
jisql_cmd = "%s -cp %s;%s\\jisql\\lib\\* org.apache.util.sql.Jisql -user %s -p \"%s\" -driver mssql -cstring jdbc:sqlserver://%s;databaseName=%s -noheader -trim"%(self.JAVA_BIN, self.SQL_CONNECTOR_JAR, path, user, password, self.host,db_name)
841849
return jisql_cmd
842850

843851
def verify_user(self, root_user, db_root_password, db_user,dryMode):
@@ -1398,6 +1406,14 @@ def main(argv):
13981406
javax_net_ssl_keyStorePassword=''
13991407
javax_net_ssl_trustStore=''
14001408
javax_net_ssl_trustStorePassword=''
1409+
1410+
is_override_db_connection_string='false'
1411+
db_override_jdbc_connection_string=''
1412+
if 'is_override_db_connection_string' in globalDict:
1413+
is_override_db_connection_string=globalDict['is_override_db_connection_string'].lower()
1414+
if 'db_override_jdbc_connection_string' in globalDict:
1415+
db_override_jdbc_connection_string=globalDict['db_override_jdbc_connection_string'].strip()
1416+
14011417
if XA_DB_FLAVOR == "MYSQL" or XA_DB_FLAVOR == "POSTGRES":
14021418
if 'db_ssl_enabled' in globalDict:
14031419
db_ssl_enabled=globalDict['db_ssl_enabled'].lower()
@@ -1451,7 +1467,7 @@ def main(argv):
14511467

14521468
elif XA_DB_FLAVOR == "MSSQL":
14531469
SQLSERVER_CONNECTOR_JAR=CONNECTOR_JAR
1454-
xa_sqlObj = SqlServerConf(xa_db_host, SQLSERVER_CONNECTOR_JAR, JAVA_BIN)
1470+
xa_sqlObj = SqlServerConf(xa_db_host, SQLSERVER_CONNECTOR_JAR, JAVA_BIN, is_override_db_connection_string, db_override_jdbc_connection_string)
14551471
xa_db_core_file = os.path.join(RANGER_KMS_HOME,sqlserver_core_file)
14561472

14571473
elif XA_DB_FLAVOR == "SQLA":

security-admin/scripts/dba_script.py

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1004,19 +1004,27 @@ def writeDrymodeCmd(self, xa_db_host, audit_db_host, xa_db_root_user, xa_db_root
10041004

10051005
class SqlServerConf(BaseDB):
10061006
# Constructor
1007-
def __init__(self, host, SQL_CONNECTOR_JAR, JAVA_BIN):
1007+
def __init__(self, host, SQL_CONNECTOR_JAR, JAVA_BIN, is_db_override_jdbc_connection_string, db_override_jdbc_connection_string):
10081008
self.host = host
10091009
self.SQL_CONNECTOR_JAR = SQL_CONNECTOR_JAR
10101010
self.JAVA_BIN = JAVA_BIN
1011+
self.is_db_override_jdbc_connection_string = is_db_override_jdbc_connection_string
1012+
self.db_override_jdbc_connection_string = db_override_jdbc_connection_string
10111013

10121014
def get_jisql_cmd(self, user, password, db_name):
10131015
#TODO: User array for forming command
10141016
path = RANGER_ADMIN_HOME
10151017
self.JAVA_BIN = self.JAVA_BIN.strip("'")
10161018
if is_unix:
1017-
jisql_cmd = "%s -cp %s:%s/jisql/lib/* org.apache.util.sql.Jisql -user %s -p '%s' -driver mssql -cstring jdbc:sqlserver://%s\\;databaseName=%s -noheader -trim"%(self.JAVA_BIN, self.SQL_CONNECTOR_JAR, path,user, password, self.host,db_name)
1019+
if self.is_db_override_jdbc_connection_string == 'true' and self.db_override_jdbc_connection_string is not None and len(self.db_override_jdbc_connection_string) > 0:
1020+
jisql_cmd = "%s -cp %s:%s/jisql/lib/* org.apache.util.sql.Jisql -user %s -p '%s' -driver mssql -cstring %s -noheader -trim"%(self.JAVA_BIN, self.SQL_CONNECTOR_JAR, path, user, password, self.db_override_jdbc_connection_string)
1021+
else:
1022+
jisql_cmd = "%s -cp %s:%s/jisql/lib/* org.apache.util.sql.Jisql -user %s -p '%s' -driver mssql -cstring jdbc:sqlserver://%s\\;databaseName=%s -noheader -trim"%(self.JAVA_BIN, self.SQL_CONNECTOR_JAR, path,user, password, self.host,db_name)
10181023
elif os_name == "WINDOWS":
1019-
jisql_cmd = "%s -cp %s;%s\\jisql\\lib\\* org.apache.util.sql.Jisql -user %s -p \"%s\" -driver mssql -cstring jdbc:sqlserver://%s;databaseName=%s -noheader -trim"%(self.JAVA_BIN, self.SQL_CONNECTOR_JAR, path, user, password, self.host,db_name)
1024+
if self.is_db_override_jdbc_connection_string == 'true' and self.db_override_jdbc_connection_string is not None and len(self.db_override_jdbc_connection_string) > 0:
1025+
jisql_cmd = "%s -cp %s;%s\\jisql\\lib\\* org.apache.util.sql.Jisql -user %s -p \"%s\" -driver mssql -cstring %s -noheader -trim"%(self.JAVA_BIN, self.SQL_CONNECTOR_JAR, path, user, password, self.db_override_jdbc_connection_string)
1026+
else:
1027+
jisql_cmd = "%s -cp %s;%s\\jisql\\lib\\* org.apache.util.sql.Jisql -user %s -p \"%s\" -driver mssql -cstring jdbc:sqlserver://%s;databaseName=%s -noheader -trim"%(self.JAVA_BIN, self.SQL_CONNECTOR_JAR, path, user, password, self.host,db_name)
10201028
return jisql_cmd
10211029

10221030
def verify_user(self, root_user, db_root_password, db_user,dryMode):
@@ -1714,6 +1722,13 @@ def main(argv):
17141722
log("[E] Invalid ssl keystore password!","error")
17151723
sys.exit(1)
17161724

1725+
is_override_db_connection_string='false'
1726+
db_override_jdbc_connection_string=''
1727+
if 'is_override_db_connection_string' in globalDict:
1728+
is_override_db_connection_string=globalDict['is_override_db_connection_string'].lower()
1729+
if 'db_override_jdbc_connection_string' in globalDict:
1730+
db_override_jdbc_connection_string=globalDict['db_override_jdbc_connection_string'].strip()
1731+
17171732
if XA_DB_FLAVOR == "MYSQL":
17181733
MYSQL_CONNECTOR_JAR=CONNECTOR_JAR
17191734
xa_sqlObj = MysqlConf(xa_db_host, MYSQL_CONNECTOR_JAR, JAVA_BIN,db_ssl_enabled,db_ssl_required,db_ssl_verifyServerCertificate,javax_net_ssl_keyStore,javax_net_ssl_keyStorePassword,javax_net_ssl_trustStore,javax_net_ssl_trustStorePassword,db_ssl_auth_type)
@@ -1740,7 +1755,7 @@ def main(argv):
17401755

17411756
elif XA_DB_FLAVOR == "MSSQL":
17421757
SQLSERVER_CONNECTOR_JAR=CONNECTOR_JAR
1743-
xa_sqlObj = SqlServerConf(xa_db_host, SQLSERVER_CONNECTOR_JAR, JAVA_BIN)
1758+
xa_sqlObj = SqlServerConf(xa_db_host, SQLSERVER_CONNECTOR_JAR, JAVA_BIN, is_override_db_connection_string, db_override_jdbc_connection_string)
17441759
xa_db_version_file = os.path.join(RANGER_ADMIN_HOME,sqlserver_dbversion_catalog)
17451760
xa_db_core_file = os.path.join(RANGER_ADMIN_HOME,sqlserver_core_file)
17461761
xa_patch_file = os.path.join(RANGER_ADMIN_HOME,sqlserver_patches)
@@ -1779,7 +1794,7 @@ def main(argv):
17791794

17801795
elif AUDIT_DB_FLAVOR == "MSSQL":
17811796
SQLSERVER_CONNECTOR_JAR=CONNECTOR_JAR
1782-
audit_sqlObj = SqlServerConf(audit_db_host, SQLSERVER_CONNECTOR_JAR, JAVA_BIN)
1797+
audit_sqlObj = SqlServerConf(audit_db_host, SQLSERVER_CONNECTOR_JAR, JAVA_BIN, is_override_db_connection_string, db_override_jdbc_connection_string)
17831798
audit_db_file = os.path.join(RANGER_ADMIN_HOME,sqlserver_audit_file)
17841799

17851800
elif AUDIT_DB_FLAVOR == "SQLA":

0 commit comments

Comments
 (0)