如何从Spring在DataSource中设置角色
我必须使用默认角色,以便在定义并连接数据源后,该角色将允许我使用select语句。我知道这有点奇怪,但出于安全考虑,我不得不这么做。下面是我的Spring的applicationContext.xml中的代码:如何从Spring在DataSource中设置角色,spring,jdbc,datasource,Spring,Jdbc,Datasource,我必须使用默认角色,以便在定义并连接数据源后,该角色将允许我使用select语句。我知道这有点奇怪,但出于安全考虑,我不得不这么做。下面是我的Spring的applicationContext.xml中的代码: <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassNa
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.ibm.db2.jcc.DB2Driver" />
<property name="url"
value="jdbc:db2://host_name:Port/DB_NAME:INFORMIXSERVER=SERVER_NAME;DELIMIDENT=y;" />
<property name="username" value="user" />
<property name="password" value="password" />
<property name="minIdle" value="2" />
</bean>
在执行sql命令之前,但不知道如何在此处设置它
请注意。DBCP允许您传递SQL语句,以便在连接初始化期间执行。大概是这样的:
set role ROLE_ACCESS_SELECT;
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name = "connectionInitSqls">
<list><value>set role ROLE_ACCESS_SELECT</value></list>
</property>
...
</bean>
设置角色访问权限选择
...
DBCP允许您传递SQL语句,以便在连接初始化期间执行。大概是这样的:
set role ROLE_ACCESS_SELECT;
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name = "connectionInitSqls">
<list><value>set role ROLE_ACCESS_SELECT</value></list>
</property>
...
</bean>
设置角色访问权限选择
...
没关系,我已经解决了这个问题。感谢所有看过我文章的人,解决方案如下:
set role ROLE_ACCESS_SELECT;
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name = "connectionInitSqls">
<list><value>set role ROLE_ACCESS_SELECT</value></list>
</property>
...
</bean>
在minIdle属性之后添加此行:
设置角色\u网络\u操作员
并定义一个类,例如:
public class ExtendedBasicDataSource extends BasicDataSource {
public void setInitSQLCommands(List<String> initSQLCommands) {
this.initSQLCommands = initSQLCommands;
setConnectionInitSqls(initSQLCommands);
}
}
public类ExtendedBasicDataSource扩展了BasicDataSource{
public void setInitSQLCommands(列出initSQLCommands){
this.initSQLCommands=initSQLCommands;
setConnectionInitSqls(initSQLCommands);
}
}
在Spring的ApplicationContext.xml中定义数据源bean时,使用该bean而不是org.apache.commons.dbcp.BasicDataSource。没关系,我已经解决了这个问题。感谢所有看过我文章的人,解决方案如下:
set role ROLE_ACCESS_SELECT;
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name = "connectionInitSqls">
<list><value>set role ROLE_ACCESS_SELECT</value></list>
</property>
...
</bean>
在minIdle属性之后添加此行:
设置角色\u网络\u操作员
并定义一个类,例如:
public class ExtendedBasicDataSource extends BasicDataSource {
public void setInitSQLCommands(List<String> initSQLCommands) {
this.initSQLCommands = initSQLCommands;
setConnectionInitSqls(initSQLCommands);
}
}
public类ExtendedBasicDataSource扩展了BasicDataSource{
public void setInitSQLCommands(列出initSQLCommands){
this.initSQLCommands=initSQLCommands;
setConnectionInitSqls(initSQLCommands);
}
}
在Spring的ApplicationContext.xml中定义数据源bean时,使用该bean而不是org.apache.commons.dbcp.BasicDataSource。axtavt的建议更好,因为它不需要任何额外的编码。。。我认为你应该把他的回答标记为答案…@Hanswestbeek:Enrique(自我)的答案基本上是axtavt所说的更好的版本(它有正确的synthax),它向你展示了如果你想要的话如何通过编程来设置它+1axtavt的建议更好,因为它不需要任何额外的编码。。。我认为你应该把他的回答标记为答案…@Hanswestbeek:Enrique(自我)的答案基本上是axtavt所说的更好的版本(它有正确的synthax),它向你展示了如果你想要的话如何通过编程来设置它+1.