使用 Oracle 厚 OCI 驱动程序的 Grails 使用错误的用户向 Oracle 进行身份验证
Grails with Oracle thick OCI driver authenticate to Oracle with wrong user
我已经通过在
中添加以下行来使用存储在 Oracle 钱包中的证书设置对 Oracle 进行身份验证
sqlnet.ora。 sqlnet.ora 位于我的 Linux 主目录中。
WALLET_LOCATION =
(SOURCE =
(METHOD = FILE)
(METHOD_DATA =
(DIRECTORY = my_wallet_location)
)
)
SQLNET.WALLET_OVERRIDE = TRUE
并在DataSource.groovy
中将用户名和密码设置为“”
username=""
password=""
然而,在我启动我的 grails 应用程序后,我发现我的应用程序进行了 os 身份验证,它让我以 ops$john 的身份登录到 Oracle as supposed to john 并且完全无视我的钱包设置。
请指教。
更新:
这是 DataSource.groovy
的其余部分
dataSource {
pooled = true
jmxExport = true
driverClassName = "oracle.jdbc.driver.OracleDriver"
username=""
password=""
}
hibernate {
cache.use_second_level_cache = true
cache.use_query_cache = true
// cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory' // Hibernate 3
cache.region.factory_class = 'org.hibernate.cache.ehcache.EhCacheRegionFactory' // Hibernate 4
singleSession = true // configure OSIV singleSession mode
flush.mode = 'manual' // OSIV session flush mode outside of transactional context
}
// environment specific settings
environments {
development {
dataSource {
dbCreate = "update" // one of 'create', 'create-drop', 'update', 'validate', ''
url = "jdbc:oracle:oci:@//myhost:myport/myinstance"
properties {
// See http://grails.org/doc/latest/guide/conf.html#dataSource for documentation
jmxEnabled = true
initialSize = 5
maxActive = 50
minIdle = 5
maxIdle = 25
maxWait = 10000
maxAge = 10 * 60000
timeBetweenEvictionRunsMillis = 5000
minEvictableIdleTimeMillis = 60000
validationQuery = "SELECT 1"
validationQueryTimeout = 3
validationInterval = 15000
testOnBorrow = true
testWhileIdle = true
testOnReturn = false
jdbcInterceptors = "ConnectionState"
defaultTransactionIsolation = java.sql.Connection.TRANSACTION_READ_COMMITTED
}
}
}
}
我已经通过在
中添加以下行来使用存储在 Oracle 钱包中的证书设置对 Oracle 进行身份验证sqlnet.ora。 sqlnet.ora 位于我的 Linux 主目录中。
WALLET_LOCATION =
(SOURCE =
(METHOD = FILE)
(METHOD_DATA =
(DIRECTORY = my_wallet_location)
)
)
SQLNET.WALLET_OVERRIDE = TRUE
并在DataSource.groovy
中将用户名和密码设置为“” username=""
password=""
然而,在我启动我的 grails 应用程序后,我发现我的应用程序进行了 os 身份验证,它让我以 ops$john 的身份登录到 Oracle as supposed to john 并且完全无视我的钱包设置。
请指教。
更新:
这是 DataSource.groovy
的其余部分dataSource {
pooled = true
jmxExport = true
driverClassName = "oracle.jdbc.driver.OracleDriver"
username=""
password=""
}
hibernate {
cache.use_second_level_cache = true
cache.use_query_cache = true
// cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory' // Hibernate 3
cache.region.factory_class = 'org.hibernate.cache.ehcache.EhCacheRegionFactory' // Hibernate 4
singleSession = true // configure OSIV singleSession mode
flush.mode = 'manual' // OSIV session flush mode outside of transactional context
}
// environment specific settings
environments {
development {
dataSource {
dbCreate = "update" // one of 'create', 'create-drop', 'update', 'validate', ''
url = "jdbc:oracle:oci:@//myhost:myport/myinstance"
properties {
// See http://grails.org/doc/latest/guide/conf.html#dataSource for documentation
jmxEnabled = true
initialSize = 5
maxActive = 50
minIdle = 5
maxIdle = 25
maxWait = 10000
maxAge = 10 * 60000
timeBetweenEvictionRunsMillis = 5000
minEvictableIdleTimeMillis = 60000
validationQuery = "SELECT 1"
validationQueryTimeout = 3
validationInterval = 15000
testOnBorrow = true
testWhileIdle = true
testOnReturn = false
jdbcInterceptors = "ConnectionState"
defaultTransactionIsolation = java.sql.Connection.TRANSACTION_READ_COMMITTED
}
}
}
}