数据库报没有execute权限

数据库报没有execute权限,第1张

EXEC sp_change_users_login 'Report'这段代码

这个执行有结果吗

如果有的话, 就表明有孤立用户

USE 你的库名

GRANT EXECUTE ON login

TO 你的用户

sqlserver中

EXEC命令有两种用法,一种是执行一个存储过程,另一种是执行一个动态的批处理

1使用系统存储过程sp_executesql运行Unicode命令字符串

语法如下:

sp_executesql [@stmt=] stmt

[

{,[@params=] N'@parameter_name data_type [,n]'}

{,[@param1=] 'value' [,n]}

]

说明:必须先将各个包含所要运行的命令语句的Unicode字符串相加在一起,再交给系统存储过程sp_executesql来运行,而不能在sp_executesql的语句中来相加各个命令字符串。

举例如下:

declare @DBName nvarchar(20),

@Tbname nvarchar(20),

@SQLString nvarchar(500)

set @DBName=N'Northwind'

set @Tbname=N'Customers'

set @SQLString=N'USE '+@DBName+char(13) --char(13)换行

SET @SQLString=@SQLString+N'select from '+@Tbname

--必须先将命令字符串组合完毕后再交给sp_executesql来运行

exec sp_executesql @SQLString

2使用EXECUTE命令运行命令字符串

要使用EXECUTE命令来运行一个命令字符串的语法如下:

EXEC[UTE] ({@string_variable|[N] 'stql_string'} [+n])

从语法看出,可以先将包含所要运行的命令的字符串赋给一个局部变量@string_variable,再使用EXECUTE命令来运行,或是直接使用EXECUTE命令去运行一个包含所要运行的命令语句的字符串。此外,您也可以将多个包含所要运行的命令语句的字符串相加在一起,再交给EXECUTE命令来一次运行。

例:

declare @sql nvarchar(4000)

set @sql='select from [表] where email=''test@163com'''

exec (@sql)

import javasqlConnection;

import javasqlDriverManager;

import javasqlPreparedStatement;

import javasqlResultSet;

import javasqlSQLException;

//一个数据库通用的帮助类,用于连接数据库与关闭数据库

public class DBUtil {

//第一步:声明你所需要的一些全局变量

private final static String DRIVER_CLASS="commicrosoftsqlserverjdbcSQLServerDriver";//加载驱动的字符串

private final static String CONN_STR="jdbc:sqlserver://localhost:1433;databaseName=testDB";//数据库连接字符串

private final static String DB_USER="sa";//数据用户

private final static String DB_PWD="123456";//数据库登录密码

//第二步:加载数据库驱动(这里是sqlserver)

static{

try{

ClassforName(DRIVER_CLASS);

}catch(ClassNotFoundException e){

eprintStackTrace();//抛出异常

}

}

//第三步:获取数据库连接

public static Connection getConn(){

try {

return DriverManagergetConnection(CONN_STR,DB_USER,DB_PWD);

} catch (SQLException e) {

eprintStackTrace();

}

return null;

}

//最后关闭数据库连接

public static void closeConn(ResultSet rs,PreparedStatement pstmt,Connection conn){

try {

if (rs!=null) {//如果返回的结果集对象不能为空,就关闭连接

rsclose();

}

} catch (Exception e) {

eprintStackTrace();

}

try {

if (pstmt!=null) {

pstmtclose();//关闭预编译对象

}

} catch (Exception e) {

eprintStackTrace();

}

try {

if (conn!=null) {

connclose();//关闭结果集对象

}

} catch (Exception e) {

eprintStackTrace();

}

}

}

以上就是关于数据库报没有execute权限全部的内容,包括:数据库报没有execute权限、数据库的“EXEC”是什么意思应该怎么用、java连接池 execute怎么关闭数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9322219.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存