[英]Can't login to SQL server database
我從其主機創建了客戶端數據庫的備份。 我使用SQL 2008 Management Studio將其還原到了本地計算機上。 一切似乎一切順利。 但是,我無法獲得任何登錄信息來工作。 我已經創建了新的登錄名並將其分配為數據庫的dbo,但是在我的asp.net頁或Visual Studio的數據連接窗格中,我無法登錄到數據庫。
我什至嘗試將可以訪問所有其他數據庫的系統管理員分配給該數據庫,但它也無法登錄。 我需要在數據庫本身上設置一個選項嗎? 謝謝。
SQL Server有兩種類型的用戶帳戶。 第一個是服務器范圍的“登錄”。 第二個是數據庫特定的“用戶”。 兩者之間的鏈接是一個SID,這是一個很大的唯一數字。
現在,如果還原數據庫,它將僅還原用戶,而不登錄。 這意味着登錄名和用戶之間的鏈接已丟失。
該腳本將通過調用系統過程sp_change_users_login
修復用戶。 如果SID不匹配,此過程將根據名稱將登錄名與用戶匹配:
use <YourDbNameHere>
declare usr_cur cursor forward_only read_only for
select distinct sysusers.name
from sysusers
join master.dbo.syslogins
on sysusers.name = master.dbo.syslogins.name
where sysusers.issqluser <> 0
declare @usr sysname;
open usr_cur
fetch next from usr_cur into @usr;
while @@fetch_status = 0
begin
if @usr <> 'dbo'
exec sp_change_users_login 'Auto_Fix', @usr
fetch next from usr_cur into @usr
end
close usr_cur
deallocate usr_cur
在您的本地計算機上運行它,並且登錄名應該再次起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.