Sql 使用execute创建登录名
我正在处理一个项目,我可以作为外部用户以有限的权限访问SQL Server 例如,当我想使用此命令创建登录时,我的权限被拒绝: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
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语句可用于向链接服务器发送传递命令