HiveBrain v1.2.0
Get Started
← Back to all entries
patternsqlModerate

I can't access any database diagram

Submitted by: @import:stackexchange-dba··
0
Viewed 0 times
cananydatabasediagramaccess

Problem

My databases have been working fine on my Windows Server 2016 standard. The database management system is Microsoft SQL Server 2017 Express.

Today I added a new table and content, all is fine. I tried to open the database diagram and received an error message:

And in case the image doesn't work, the message is:


Cannot execute as the database principal because the permission "dbo" does not exist, this type of principal cannot be impersonated, or you do not have permission. (Microsoft SQL Server, Error: 15517)

Nothing has changed on my server - no updates, etc.

I can access all the tables. When I look at the account I log in, I can see I am a the database owner, which other posts suggest to do - but I wasn't previously so unsure as to why this would help.

This issue affects every single database I have.

The only difference is I now create a daily back up from a scheduled task with the following script

BACKUP DATABASE DBName TO  DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL13.SQLEXPRESS\MSSQL\Backup\DBName .bak' 
WITH NOFORMAT, INIT,  NAME = N'DBName Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10


The result of

SELECT ORIGINAL_LOGIN(), USER_NAME(), SUSER_SNAME();


shows

Solution

This is because the owner of the database ( the login ) was deleted. You should remap the owner of the database, to a login that exists.

ALTER AUTHORIZATION 
ON DATABASE::[DatabaseName]
TO [A Suitable Login];


Dont use sp_changedbowner. it's a deprecated feature.

Code Snippets

ALTER AUTHORIZATION 
ON DATABASE::[DatabaseName]
TO [A Suitable Login];

Context

StackExchange Database Administrators Q#186356, answer score: 10

Revisions (0)

No revisions yet.