使用JtdsPreparedStatement.execute执行一个insert语句时会报“拒绝了对对象 'xp_cmdshell' (数据库 'mssqlsystemresource',架构 'sys')的 EXECUTE 权限”错误,看了半天源码没找到原因,从源码里看它并没有发送需要用到xp_cmdshell的语句,求高手指教到底是怎么回事情。
解决方案 »
- java中过滤重复
- 求一HQL或实现思路
- hibernate procedure
- 保存jsp文件时发生共享违例,怎么回事,谢啦
- 刚在 Apache 网站上把 VelocityWeb 放到了 Spring 和 WebWork 之间
- 请问!JBUILDER X下配置struts1.1的DataSource数据源详细配置方法
- 新手问题,TOMCAT 提示Service not found
- 高分悬赏 js对象和jquery对象为啥要互相转换呢 一般什么时候转换呢
- 关于自己写的JDBC事物控制,交给spring aop管理的问题
- struts2 跳转出错
- hibernate native自增长设置null id 异常
- java 读取大型csv文件越来越慢
int i;
i = 0;
PreparedStatement pstmt = null;
try
{
if(conn == null)
throw new SException("\u6570\u636E\u5E93\u8FDE\u63A5\u4E3A\u7A7A");
pstmt = conn.prepareStatement(SqlProc.exchangSql(sql));
SqlProc.setParameters(pstmt, sql, obj);
pstmt.execute();
i = pstmt.getUpdateCount();
}
catch(Exception e)
{
throw new SException(getClass().getName()+"\u6570\u636E\u5E93\u64CD\u4F5C\u5931\u8D25\uFF1A" + sql, e);
}
finally
{
closePstmt(pstmt);
}
return i;这个pstmt.execute()代码执行就报这个错误。SqlProc.setParameters(pstmt, sql, obj);是一个把对象转为PreparedStatement参数的方法。只要给数据库用户执行xp_cmdshell的权限语句就能正常执行。