Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用execute创建登录名_Sql_Sql Server - Fatal编程技术网

Sql 使用execute创建登录名

Sql 使用execute创建登录名,sql,sql-server,Sql,Sql Server,我正在处理一个项目,我可以作为外部用户以有限的权限访问SQL Server 例如,当我想使用此命令创建登录时,我的权限被拒绝: CREATE LOGIN [login] WITH PASSWORD=N'test', DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF) 但是,当我尝试使用此命令创建登录时,我可以做到这一点,而且我现在有权限启用xp\u

我正在处理一个项目,我可以作为外部用户以有限的权限访问SQL Server

例如,当我想使用此命令创建登录时,我的权限被拒绝:

CREATE LOGIN [login] WITH PASSWORD=N'test', DEFAULT_DATABASE=[master], 
DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF)
但是,当我尝试使用此命令创建登录时,我可以做到这一点,而且我现在有权限启用
xp\u cmd
shell:

EXECUTE('EXECUTE(''CREATE LOGIN [test5] WITH PASSWORD=N''''test'''', 
DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF'') AT "hostname\domain"')
EXECUTE('EXECUTE(''ALTER SERVER ROLE [sysadmin] ADD MEMBER [test5]'')
EXECUTE('EXECUTE(''ALTER SERVER ROLE [db_owner] ADD MEMBER [test5]'')
有人能解释一下原因吗?

在“hostname\domain”执行('string sql statement')==该“string sql statement”是在链接服务器“hostname/domain”上执行的传递命令

是否有人创建了环回链接服务器(指向sql实例本身的链接服务器)? 链接服务器有自己的安全配置/设置。如果链接服务器的安全性配置为(针对任何登录)在特权登录(如sa)的安全上下文下进行,则linkedserver上的exec(“”)将以比预期更多/更高的权限执行。这是一个重大的安全问题/漏洞


检查链接服务器的安全性并进行相应更改(您真的需要环回链接服务器吗?

很抱歉,您能给我解释一下吗!为什么有两个EXECUTE('EXECUTE'),因为EXECUTE语句可用于向链接服务器发送传递命令