web-dev-qa-db-fra.com

Autorisations requises pour modifier un fichier de base de données

Totalement au début dans l'administration d'une base de données.

Utilisation de EMS SQL Manager ... dernière version. Comment puis-je venir ci-dessous

ALTER DATABASE joneslocker2
MODIFY FILE (
    NAME = joneslocker2, 
    MAXSIZE = UNLIMITED )
GO

ce qui entraîne une erreur:

L'utilisateur n'est pas autorisé à modifier la base de données 'joneslocker2', la base de données n'existe pas ou la base de données n'est pas dans un état qui autorise les vérifications d'accès.

Je ne sais pas quoi mettre ensuite.

4
Gary Miller

Vous devez accorder l'autorisation ALTER DATABASE à l'utilisateur.

GRANT ALTER ON DATABASE:: joneslocker2 TO username

Le script ci-dessous vous aidera à trouver les autorisations attribuées au niveau de la base de données:

SELECT prin.[name] [User], sec.state_desc + ' ' + sec.permission_name [Permission] 
FROM [sys].[database_permissions] sec 
  JOIN [sys].[database_principals] prin 
    ON sec.[grantee_principal_id] = prin.[principal_id] 
WHERE sec.class = 0 
ORDER BY [User], [Permission];

Vérifiez ma réponse ici pour un exemple sur la raison pour laquelle vous obtenez l'erreur .

Reportez-vous à: Bases des autorisations du moteur de base de données

4
Kin Shah

Accorder juste modifier la base de données spécifique ne permet pas de renommer.

Vous devez également accorder des autorisations au niveau du serveur et dans le maître.

USE master;  
ALTER SERVER ROLE [dbcreator] ADD MEMBER [DOMAIN\User-Name]
GO

USE master;    
ALTER ROLE [db_datareader] ADD MEMBER [DOMAIN\User-Name];
ALTER ROLE [db_datawriter] ADD MEMBER [DOMAIN\User-Name];

USE [AdventureWorks]
ALTER ROLE [db_owner] ADD MEMBER [DOMAIN\User-Name];  
0
jclabonde