Je travaille sur un projet de base de données dans VS2013 qui contient une procédure stockée C# SQL CLR.Projet de base de données VS2013 utilisant SQL CLR - référence non résolue à l'objet [nom_serveur nom_utilisateur] (propriétaire de la base de données)
Le propriétaire de l'assemblage est [nomserveur \ user123]
Le propriétaire de la base de données est également [nomserveur \ user123] (Etre propriétaire de la base, cet utilisateur existe évidemment déjà sur le serveur. J'ai réussi un succès publier de la base de données en commentant le code dans ma procédure CLR SQL et de publication, ce qui suit se produit après avoir Décommentez-out ce code)
Si je tente de construire le projet dans VS, je reçois l'erreur.
Error 1 SQL71501: Assembly: [DatabaseProject] has an unresolved reference to object [servername\User123].
... causé par:
CREATE ASSEMBLY [DatabaseProject] AUTHORIZATION [servername\User123]
FROM 0x4D5A90000300000004000000FFFF0000B8000etcetcetcetc
WITH PERMISSION_SET = EXTERNAL_ACCESS
GO
Ainsi, si VS ajouter un script de création de l'utilisateur dans le dossier \ Security:
CREATE USER [servername\User123] FOR LOGIN [servername\User123] WITH DEFAULT_SCHEMA = dbo
GO
GRANT CONNECT TO [servername\User123]
Ensuite, je peux construire le projet.
Cependant, si j'essaie alors de Publish la base de données, je reçois l'erreur:
Creating [servername\User123]...
(47,1): SQL72014: .Net SqlClient Data Provider: Msg 15063, Level 16, State 1, Line 1 The login already has an account under a different user name.
(47,0): SQL72045: Script execution error. The executed script:
CREATE USER [servername\User123] FOR LOGIN [servername\User123];
An error occurred while the batch was being executed.
Y at-il une « bonne » pour le faire?