我目前正在使用SQL Server 2005,并尝试从几个月前恢复数据库,但当我尝试创建帐户时恢复它时,它告诉我该帐户已存在但您无法看到它在安全之下。我尝试删除该帐户,但它告诉我该帐户不存在可以放弃...但是当我尝试创建它时,它告诉我它存在......它令我疯狂。我完全从服务器和所有链接的服务器和所有数据库中删除该帐户,并且我试图再次重新创建它,它可以在所有数据库上运行,除了它始终存在的一个数据库。任何想法可能是什么或我应该检查什么?SQL Server帐户问题
0
A
回答
1
作为一名DBA,我总是遇到这个问题。而GUI并没有什么帮助。你的SQL服务器有你想要的账号,db有你想要的账号,但是它们在恢复时不会自动连接。
解决这个问题的真正方法是停止使用个人账户。仅基于作为活动目录组的成员提供对数据库的访问权限。然后,您可以将访问问题提供给AD组。顺便说一句:虽然个人帐户不会在还原时自动重新连接,但群组访问可以。
下面是我用来解决相同问题的一些代码。
create procedure [dbo].[proc_FarSyncLogins] @TargetDB nvarchar(128)= '' as
begin
SET NOCOUNT ON
declare @cmd varchar(1000)
begin try
drop table master.dbo.NeededUsers
end try
begin catch
print 'could not: drop table master.dbo.NeededUsers'
end catch
set @cmd='select name collate Latin1_General_CI_AS as name,is_disabled
into master.dbo.NeededUsers
from ['[email protected]+'].sys.sql_logins'
--print @cmd
exec(@cmd)
print 'logins that need to be enabled'
select * from master.dbo.NeededUsers
declare @UserName nvarchar(128)
declare SyncUsers1 cursor fast_forward for SELECT Name FROM master.dbo.NeededUsers
OPEN SyncUsers1
FETCH NEXT FROM SyncUsers1 INTO @UserName
WHILE @@FETCH_STATUS = 0
BEGIN
set @cmd = ''
if @TargetDB <> ''
begin
set @[email protected]+'Use ['[email protected]+']; '+char(10)
end
begin try
SET @cmd = @cmd+'ALTER LOGIN ['[email protected]+'] ENABLE; '+char(10)
SET @cmd = @cmd+'exec sp_change_users_login @Action=''Auto_Fix'', @UserNamePattern ='''[email protected]+'''; '+char(10)
PRINT @cmd
EXEC(@cmd)
end try
begin catch
Print 'Failed :'[email protected]
end catch
FETCH NEXT FROM SyncUsers1 INTO @UserName
END
CLOSE SyncUsers1
DEALLOCATE SyncUsers1
end
然后,只需
exec master.dbo.proc_FarSyncLogins '<yourDBName>';
它是确定地哈克,你将要仔细阅读输出来验证你的意思做的所有这些行动。但大多数时候你只想恢复你以前的一切。
1
该帐户存在于数据库和服务器级别。
因此,您需要从数据库本身删除帐户,但不能从服务器中删除该帐户,因为它不存在该帐户。 你有没有试过...
use {yourdatabasename}
go
EXEC sp_dropuser '{username}'
2
你在数据库中有孤立的用户帐户。将数据库从一台服务器复制/移动到另一台服务器时,这是非常常见的问题。您需要将它们从数据库用户中删除或者更好的选择是创建服务器登录并将该登录映射到该孤立数据库用户。 虽然回来我用my blog写了一些演示脚本,但你可能想看看它。或者只需查看this MSDN link即可使用可用于管理孤立用户的SP。
相关问题
- 1. 帐户层级Salesforce帐户 - SQL Server
- 2. 的SQL Server 2014 - 无法获得SQL Server的帐户访问DB
- 3. MailChimp帐户问题
- 4. SQL Server问题
- 5. SQL Server复制过程帐户错误
- 6. 将Windows帐户添加到SQL Server
- 7. sql server 2008启用sa帐户
- 8. SQL Server 2008中启用sa帐户
- 9. ASP.net和SQL Server 2005:ASPNET帐户设置
- 10. SQL Server的两个管理员帐户
- 11. 使用服务帐户使用SQL Server
- 12. 监视SQL Server 2005帐户活动
- 13. SQL Server的问题
- 14. SQL Server trim()问题
- 15. SQL Server池问题
- 16. 问题与SQL Server
- 17. SQL Server 2008问题
- 18. 与服务帐户问题
- 19. Github上多帐户问题
- 20. PHP帐户激活问题
- 21. SQL Server访问问题
- 22. SQL Server 2008死锁问题
- 23. SQL Server查询问题
- 24. Sql Server 2005 Express Edition问题
- 25. SQL Server单元问题
- 26. 动态SQL Server问题
- 27. SQL Server相关问题
- 28. SQL Server 2005 - 登录问题
- 29. SQL Server外键问题
- 30. SQL Server缓存问题
嘿感谢您的快速回复。是的,我试过了,它不工作...仍然给我一个错误,用户不存在删除。 – 2012-03-27 14:09:42
你看到它在这里... select * from sys.sysusers – 2012-03-27 14:22:34
,你可以在这里看看它的主... select * from sys.syslogins – 2012-03-27 14:24:35