J'ai une instance SQL Server 2012 exécutée en tant que service sur mon ordinateur et, selon la page de service, elle se connecte en tant que compte "NT Service \ MSSQLSERVER". Cependant, je ne vois pas ce nom de compte ailleurs, y compris dans la zone "Utilisateurs et groupes locaux" de l'écran de gestion de l'ordinateur, car, comme le dit un lien ci-dessous, ce n'est pas un compte d'utilisateur, c'est un nom de service, dans cette case qui Microsoft a si bien étiqueté "compte". À ce stade, je peux voir beaucoup de gens confus.
La tâche que j'essaie d'accomplir est de restaurer des fichiers à l'aide de la boîte de dialogue SSMS "Localiser le fichier de sauvegarde", qui utilise une boîte de dialogue complètement différente de toutes les boîtes de dialogue d'ouverture de fichiers Windows standard, probablement parce qu'elle effectue un travail "à distance" et fonctionne à partir de la contexte de sécurité du serveur SQL, une autre source riche de confusion pour l'utilisateur final, que j'espère que cette question pourrait aider à clarifier.
Jusqu'à présent, si je veux restaurer un fichier de sauvegarde .mdf / .bak que j'ai dans l'un de mes dossiers, je dois définir ce dossier pour qu'il soit lisible par tout le monde, sinon je ne peux pas y accéder avec SQL Server "Locate Backup Fenêtre "Fichier". Je trouve cette idée que vous utilisez une interface graphique parlant à un service qui a des comptes d'utilisateurs et des droits différents de vous, que personne chez Microsoft ne voulait même vous expliquer, très déroutant même quand j'ai des années d'expérience avec l'administration système de Windows .
J'espère avoir manqué quelques pages de documentation pour SQL Server qui vous diraient, après l'installation d'une nouvelle instance de serveur SQL, comment vous pourriez configurer la sécurité.
Des messages du forum comme celui-ci ont même des membres du personnel de Microsoft disant "c'est compliqué", et que cela "a encore changé" à Denali. Comment cela fonctionne-t-il maintenant dans SQL Server 2012 et comment puis-je ajouter l'autorisation de lire les fichiers appartenant aux utilisateurs à la sécurité du moteur de base de données SQL SID
.
la source
Réponses:
Pour référence "Denali" est SQL Server 2012. En ce qui concerne la "confusion de l'utilisateur final", je ne suis pas du tout préoccupé par la confusion ou non d'un utilisateur final en ce qui concerne SSMS. Microsoft n'a pas développé cet outil pour l'utilisateur final normal, mais pour l'administrateur de base de données et / ou un utilisateur qui devait gérer une base de données. Il y aura donc une courbe d'apprentissage avec les outils fournis et leur fonctionnement. La boîte de dialogue de fichier a été ainsi dans SSMS depuis que SSMS est sorti avec SQL Server 2005. C'est pourquoi vous verrez généralement la plupart des instructions T-SQL pour sauvegarder, restaurer ou attacher une base de données qui l'utilise depuis lors. .
Pour configurer les autorisations du système de fichiers avec SQL Server, vous pouvez suivre les instructions de MSDN ici .
La façon dont les comptes de service sont gérés n'est pas venue avec ou à cause de SQL Server, elle était due à la modification au niveau du système d'exploitation. Windows Server 2008 R2 a mis un peu plus de couche de sécurité autour des comptes de service. L'avantage que vous avez est que le compte de service peut accéder plus facilement aux ressources d'un domaine même s'il est installé avec les paramètres par défaut. Ce lien fournit un aperçu assez détaillé de la façon dont les autorisations de compte de service sont gérées avec SQL Server 2012. Un extrait du lien est ci-dessous sur les comptes virtuels utilisés par défaut dans SQL Server 2012. Il existe également un lien fourni dans l'article qui va dans plus discussion sur le concept de compte de service avec Windows, ici. Il s'agit de Window Server 2008 R2, mais je pense que cela reste vrai sur Window Server 2012, et probablement Window Server 2012 R2.
la source
Pour voir / accéder aux fichiers dans un autre dossier, accordez des
NT SERVICE\MSSQLSERVER
autorisations sur le dossier. Voir ma réponse publiée sur le fichier .bak non visible dans aucun répertoire de SSMS pour les captures d'écran et les étapes impliquées. (Légèrement différent de l'ajout d'autorisations utilisateur / groupe normales à un dossier.)J'espère que ça t'as aidé!
la source
En fait, si vous essayez de faire une restauration via SSMS et que vous êtes connecté via l'authentification Windows (!), Ce sera VOTRE compte Windows (et non "tout le monde non plus) qui aura besoin des autorisations pour cela - PAS le service SQL Server Compte. J'espère que cela éliminera la confusion. Le compte de service a d'autres besoins. Par exemple, si vous étiez connecté via un compte authentifié SQL - alors quelles autorisations le système d'exploitation devrait-il demander? - Ce sera le compte de service de SQL Server dans ce uniquement! Cela n'a pas changé depuis SQL Server 7.0 et probablement même pas avant :)
la source
.bak
fichier (qu'il n'aura généralement pas s'il se trouve dans votre répertoire utilisateur, sauf autorisation explicite).