1

我需要授予现有登录到我的数据库的访问权限,并从 T-SQL 脚本更改其他登录的密码,该脚本从事务中的 C++ 更新程序运行。它应该针对 SQL Server 2000 以及任何较新的 SQL Server 版本运行。

CREATE USER FOR LOGIN并且ALTER LOGIN WITH PASSWORD在 MSDE 和 SQL Server 2000 中不受支持,但我无法使用sp_grantdbaccesssp_password因为它们失败并出现错误 -2147217900

我认为这是由于这些存储过程不能从用户事务中运行,并且它也可以在未来的 SQL Server 版本中被弃用。

你能建议任何其他解决方案吗?

以下是在用户事务中运行的脚本示例

CREATE PROCEDURE [dbo].[_PasswordChangeSaveCleanup]  
@Meno varchar(50),  
@HesloEncrypted varchar(50)  
AS  
BEGIN  
...     
return 1  
END  
GO  
--CREATE USER [some] FOR LOGIN [some]  
EXECUTE sp_grantdbaccess @loginame='some'  
GO  
GRANT SELECT ON [dbo].[UZivatelia] TO [ese]  
GO  
--ALTER LOGIN SOME2 WITH PASSWORD='vreK.BH45'  
EXECUTE sp_password @new='vreK.BH45',@loginame='SOME2'  
GO  
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SOMESP]') AND type in (N'P', N'PC'))  
DROP PROCEDURE [dbo].[SOMESP]  
GO
4

0 回答 0