Mes bases de données ont bien fonctionné sur ma norme Windows Server 2016. Le système de gestion de base de données est Microsoft SQL Server 2017 Express.
Aujourd'hui, j'ai ajouté une nouvelle table et un nouveau contenu, tout va bien. J'ai essayé d'ouvrir le diagramme de la base de données et j'ai reçu un message d'erreur:
Et au cas où l'image ne fonctionnerait pas, le message est:
Impossible d'exécuter en tant que principal de la base de données car l'autorisation "dbo" n'existe pas, ce type de principal ne peut pas être emprunté ou vous ne disposez pas de l'autorisation. (Microsoft SQL Server, erreur: 15517)
Rien n'a changé sur mon serveur - pas de mises à jour, etc.
Je peux accéder à toutes les tables. Lorsque je regarde le compte auquel je me connecte, je peux voir que je suis le propriétaire de la base de données, ce que d'autres publications suggèrent de faire - mais je ne savais pas auparavant pourquoi cela aiderait.
Ce problème affecte chaque base de données que j'ai.
La seule différence est que je crée maintenant une sauvegarde quotidienne à partir d'une tâche planifiée avec le script suivant
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
Le résultat de
SELECT ORIGINAL_LOGIN(), USER_NAME(), SUSER_SNAME();
montre
En effet, le propriétaire de la base de données (la connexion) a été supprimé. Vous devez réaffecter le propriétaire de la base de données à une connexion existante.
ALTER AUTHORIZATION
ON DATABASE::[DatabaseName]
TO [A Suitable Login];
Ne pas utiliser sp_changedbowner
. c'est une fonctionnalité obsolète.