Bonjour,
Après la restauraion d'une base MSSQL 2008, j'ai créé un login, un user avec les rôles: DB_DATAWRITER, DB_DATAREADER et DB_OWNER.
Qd je me connecter avec cet user je ne vois que les bases systèmes: master et tempdb !
Merci.
Bonjour,
Après la restauraion d'une base MSSQL 2008, j'ai créé un login, un user avec les rôles: DB_DATAWRITER, DB_DATAREADER et DB_OWNER.
Qd je me connecter avec cet user je ne vois que les bases systèmes: master et tempdb !
Merci.
Bonjour,
Tout d'abord si ton utilisateur est propriétaire de la base (db_owner) il n'a pas besoin d'être membre des rôles de bases de données db_datareader et db_datawriter.Après la restauraion d'une base MSSQL 2008, j'ai créé un login, un user avec les rôles: DB_DATAWRITER, DB_DATAREADER et DB_OWNER.
Lorsque tu te connectes sur l'instance SQL Server tu te connectes avec un login qui doit être mappé à un utilisateur de bases de données. La question est donc : est-ce que tu as pour ton utilisateur que tu as créé un login correspondant au niveau serveur ?Qd je me connecter avec cet user je ne vois que les bases systèmes: master et tempdb !
++
Bonjour David,
Oui j'ai bien créée un login pour mon user, qd je donne le droit sysadmin à mon login j'accède à tout mais je ne veux pas que cet user voit les autres bases.
Merci.
@+
Il n'y a pas besoin que ton login soit sysadmin.
Tu dois simplement avoir un login avec le droit CONNECT sur le serveur SQL + 1 utilisateur mappé à la base que tu veux atteindre.
Si ton login est un login SQL il faut bien entendu que les SID de login + user correspondent sans quoi tu ne pourras pas te connecter à ta base de données.
En mettant ton login sysadmin tu peux tout voir puisque ton login est mappé automatiquement à chaque utilisateur spécial de bases de données dbo.
++
Bonjour,
Un peu de lecture sur la différence entre connexion et utilisateur
Si vous voulez masquer les autres bases de données à la vue de cet utilisateur, il suffit d'exécuter de lui révoquer le droit de les voir, et de placer cet utilisateur comme propriétaire de la base de données (sans créer l'utilisateur pour la connexion) :
- DENY VIEW ANY DATABASE TO monLogin
- USE maBD; EXEC sp_changedbowner 'monLogin', ou ALTER AUTHORIZATION ON DATABASE::maBD TO monLogin dès SQL Server 2008.
@++![]()
Bonjour,
Quels sont les droits à donner au niveau de login ?
Merci.
Le droit CONNECT suffit dans ton cas.
Après si ton besoin est de vraiment "cacher" les bases de données à l'utilisateur il faut suivre ce que Elsuket t'a indiqué.
++
Code : Sélectionner tout - Visualiser dans une fenêtre à part DENY VIEW ANY DATABASE TO monLogin
Bonjour,
J'ai bien un user mappé avec son login, l'user a bien le role dd_owner ...
Mais on me connectant avec expt je ne vois toujours pas mabase ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 use mabase go alter user expt WITH LOGIN = expt
Merci.
@+
Bonjour,
Il y avait:
Qui a été fait sur l'instance et de coup en faisant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 USE master; GO DENY VIEW ANY DATABASE TO public; GO
Je vois ma base.
Code : Sélectionner tout - Visualiser dans une fenêtre à part GRANT VIEW ANY DATABASE TO public;
Merci encore à vous David et Nicolas de votre aide..
@+
Partager