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é.
Les 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
.
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 est la même dans SSMS depuis la sortie de SSMS 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 aborde plus en détail 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.
Comptes virtuels
Les comptes virtuels dans Windows Server 2008 R2 et Windows 7 sont des comptes locaux gérés qui fournissent les fonctionnalités suivantes pour simplifier l'administration des services. Le compte virtuel est autogéré et le compte virtuel peut accéder au réseau dans un environnement de domaine. Si la valeur par défaut est utilisée pour les comptes de service lors de l'installation de SQL Server sur Windows Server 2008 R2 ou Windows 7, un compte virtuel utilisant le nom d'instance comme nom de service est utilisé, au format NT SERVICE \. Les services qui s'exécutent en tant que comptes virtuels accèdent aux ressources réseau à l'aide des informations d'identification du compte d'ordinateur au format\$. Lorsque vous spécifiez un compte virtuel pour démarrer SQL Server, laissez le mot de passe vide. Si le compte virtuel ne parvient pas à enregistrer le nom principal du service (SPN), enregistrez le SPN manuellement. Pour plus d'informations sur l'enregistrement manuel d'un SPN, voir Enregistrer un nom de principal de service pour les connexions Kerberos. Remarque Remarque Les comptes virtuels ne peuvent pas être utilisés pour l'instance de cluster de basculement SQL Server, car le compte virtuel n'aurait pas le même SID sur chaque nœud du cluster.
Le tableau suivant répertorie des exemples de noms de comptes virtuels.
Instance par défaut du service du moteur de base de données: NT SERVICE\MSSQLSERVER Instance nommée d'un service du moteur de base de données nommé PAYROLL: NT SERVICE\MSSQL $ PAYROLL Service SQL Server Agent sur l'instance par défaut de SQL Server: NT SERVICE\SQLSERVERAGENT Service SQL Server Agent sur un instance de SQL Server nommée PAYROLL: NT SERVICE\SQLAGENT $ PAYROLL
Pour voir/accéder aux fichiers d'un autre dossier, donnez NT SERVICE\MSSQLSERVER
autorisations sur le dossier. Voir ma réponse postée sur fichier bak non visible dans aucun répertoire de SSMS pour les captures d'écran et les étapes à suivre. (Légèrement différent de l'ajout d'autorisations utilisateur/groupe normales à un dossier.)
J'espère que cela pourra aider!
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 pas "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 - 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 :)