2014-04-23 3 views
0

Je veux ajouter membre de rôle à mes bases de données de manière dynamique avec l'aide inférieure à la requête:Comment ajouter membre du rôle de base de données existante

use MyExistingDatabase 
GO 
EXEC sp_addrolemember @rolename = 'db_owner', @membername = 'A38' 
GO 
execute as user='A38' 
GO 
CREATE TABLE [A38].[ABC] ( 
[Id]    int    IDENTITY(1,1) NOT NULL, 
[Name] nvarchar(100)        NULL, 

Ici A38 est mon nom d'utilisateur dans MyExistingDatabase et veut exécuter le plus script avec schéma par défaut A38. Le script ci-dessus fonctionne bien dans le cas si je crée une nouvelle base de données, mais si je me une base de données existante, il jette l'erreur suivante:

User does not have permission to perform this action

CREATE TABLE permission denied in database 'MyExistingDatabase'

S'il vous plaît suggérer

Répondre

0

Vous créez la table avec un schéma appelé A38, vous devez vous assurer que le schéma existe, comme ceci:

use MyExistingDatabase 
GO 
EXEC sp_addrolemember 'db_owner', 'A38' 
GO 
CREATE SCHEMA A38 AUTHORIZATION A38 
GO 
CREATE TABLE [A38].[ABC] ( 
[Id]    int    IDENTITY(1,1) NOT NULL, 
[Name] nvarchar(100)        NULL) 

voir Sinon, cette link pour une autre méthode.

Questions connexes