Ketika saya menjalankan SQL ini:
USE ASPState
GO
IF NOT EXISTS(SELECT * FROM sys.sysusers WHERE NAME = 'R2Server\AAOUser')
CREATE USER [R2Server\AAOUser] FOR LOGIN [R2Server\AAOUser];
GO
Saya mendapatkan kesalahan berikut:
Info masuk sudah memiliki akun dengan nama pengguna yang berbeda.
Bagaimana saya tahu apa nama pengguna yang berbeda ini untuk akun login saya?
sql-server
security
logins
Mendongkrak
sumber
sumber
dbo
yang ditampilkan. Aneh, saya tidak ingat bahwa saya telah menggunakandbo
akun sayaR2Server\AAOUser
. Ingin tahu apa yang harus saya lakukan selanjutnya.aspnet_regsql -E -S .\MSSQLSERVER_R2 -ssadd
untuk membuatASPState
database. Saya pikir mungkin, saya sudah siap, meskipun, saya bahkan tidak menyadarinya sejak awal.sys.server_principals
dansys.database_principals
.sysusers
dansyslogins
hanya ada untuk kompatibilitas ke belakang.Itu adalah 'hal metadata' ...
Kadang-kadang pengguna database 'rusak' selama apa pun yang terjadi di DB itu. (Saya telah melihat perilaku serupa jika DB dipulihkan, dan peran dalam salinan yang dipulihkan berbeda dari apa yang Anda isi. Inilah sebabnya saya mencoba di bawah ini, yang memperbaiki masalah bagi saya.)
Buka properti Login di SSMS -> (Keamanan | Login | gagal UserID | Properti | Pemetaan Pengguna). Anda mungkin akan melihat DB sudah dicentang dan Peran telah ditetapkan (seperti normal).
Perhatikan izin pada DB yang memberikan kesalahan, hanya untuk referensi.
sumber
Cannot drop the user 'dbo'. (Microsoft SQL Server, Error: 15150)
Cannot drop the user 'dbo'.
pesan kesalahan. Aku berlari script ini, yang dihapus pemetaan pengguna bermasalah dan tetap masalah:USE DATABASE_NAME; ALTER AUTHORIZATION ON DATABASE::DATABASE_NAME TO [sa]
. Untuk informasi lebih lanjut, ini adalah sumber yang saya gunakan: blog.sql-assistance.com/index.php/cannot-drop-the-user-dbo