J'ai besoin de créer dans une base "base1" , une vue vers une table
"matable" d'une autre base "base2".
Mais pour qu'un utilisateur puisse accéder aux données de table1 par
l'intermédiaire de la vue, il faut non seulement que l'utilisateur existe
dans les 2 bases (ça ok, je peux comprendre), mais aussi qu'il ait les
droits sur la table table1, ce que je trouve totalement illogique.
Ce comportement n'apparait pas lorsque la vue s'effectue sur une table de la
même base.
Est-ce que quelqu'un peut me fournir une explication ou une solution pour ne
pas avoir à mettre 2 fois les droits sur la table et sur la vue ?
Merci d'avance
Sébastien
Exemple pour reproduire le problème
/* depuis une connexion sa */
use base2
go
create table matable(col1 as integer)
go
use base1
go
create view mavue1 as select * from base2.dbo.matable
grant select on mavue1 to toto
go
use base2
go
create view mavue2 as select * from dbo.matable
grant select on mavue2 to toto
go
/* depuis une connexion toto autorisee dans les 2 bases base1 et base2 */
select * from base1..mavue1 /* ==> ne fontionne pas car droit d'accés refusé
sur matable */
select * from base2..mavue2 /* ==> fontionne */
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fabian SIRACH [MS]
Bonjour,
Pouvez-vous regarder si l'option "Cross Database Ownership" correspond à votre besoin et si oui, il est requis de l'activer au niveau de l'instance SQL Server (Requiert le SP3a de SQL 2000) via Enterprise Manager ou sp_dboption. Plus d'informations dans l'aide en ligne SQL Server, rubriques "Using Ownership Chains" et "Cross DB Ownership Chaining". Merci également de bien valider les contraintes de sécurité que cette option pose.
Cordialement
Fabian
"Sebastien" wrote in message news:%
Bonjour,
J'ai besoin de créer dans une base "base1" , une vue vers une table "matable" d'une autre base "base2". Mais pour qu'un utilisateur puisse accéder aux données de table1 par l'intermédiaire de la vue, il faut non seulement que l'utilisateur existe dans les 2 bases (ça ok, je peux comprendre), mais aussi qu'il ait les droits sur la table table1, ce que je trouve totalement illogique. Ce comportement n'apparait pas lorsque la vue s'effectue sur une table de la même base.
Est-ce que quelqu'un peut me fournir une explication ou une solution pour ne pas avoir à mettre 2 fois les droits sur la table et sur la vue ?
Merci d'avance Sébastien
Exemple pour reproduire le problème
/* depuis une connexion sa */ use base2 go create table matable(col1 as integer) go use base1 go create view mavue1 as select * from base2.dbo.matable grant select on mavue1 to toto go use base2 go create view mavue2 as select * from dbo.matable grant select on mavue2 to toto go
/* depuis une connexion toto autorisee dans les 2 bases base1 et base2 */ select * from base1..mavue1 /* ==> ne fontionne pas car droit d'accés refusé sur matable */ select * from base2..mavue2 /* ==> fontionne */
Bonjour,
Pouvez-vous regarder si l'option "Cross Database Ownership" correspond à
votre besoin et si oui, il est requis de l'activer au niveau de l'instance
SQL Server (Requiert le SP3a de SQL 2000) via Enterprise Manager ou
sp_dboption.
Plus d'informations dans l'aide en ligne SQL Server, rubriques "Using
Ownership Chains" et "Cross DB Ownership Chaining". Merci également de bien
valider les contraintes de sécurité que cette option pose.
Cordialement
Fabian
"Sebastien" <sebastien.dubosc.n0spa3@laposte.net> wrote in message
news:%23zVWFIaHFHA.2156@TK2MSFTNGP09.phx.gbl...
Bonjour,
J'ai besoin de créer dans une base "base1" , une vue vers une table
"matable" d'une autre base "base2".
Mais pour qu'un utilisateur puisse accéder aux données de table1 par
l'intermédiaire de la vue, il faut non seulement que l'utilisateur existe
dans les 2 bases (ça ok, je peux comprendre), mais aussi qu'il ait les
droits sur la table table1, ce que je trouve totalement illogique.
Ce comportement n'apparait pas lorsque la vue s'effectue sur une table de
la
même base.
Est-ce que quelqu'un peut me fournir une explication ou une solution pour
ne
pas avoir à mettre 2 fois les droits sur la table et sur la vue ?
Merci d'avance
Sébastien
Exemple pour reproduire le problème
/* depuis une connexion sa */
use base2
go
create table matable(col1 as integer)
go
use base1
go
create view mavue1 as select * from base2.dbo.matable
grant select on mavue1 to toto
go
use base2
go
create view mavue2 as select * from dbo.matable
grant select on mavue2 to toto
go
/* depuis une connexion toto autorisee dans les 2 bases base1 et base2 */
select * from base1..mavue1 /* ==> ne fontionne pas car droit d'accés
refusé
sur matable */
select * from base2..mavue2 /* ==> fontionne */
Pouvez-vous regarder si l'option "Cross Database Ownership" correspond à votre besoin et si oui, il est requis de l'activer au niveau de l'instance SQL Server (Requiert le SP3a de SQL 2000) via Enterprise Manager ou sp_dboption. Plus d'informations dans l'aide en ligne SQL Server, rubriques "Using Ownership Chains" et "Cross DB Ownership Chaining". Merci également de bien valider les contraintes de sécurité que cette option pose.
Cordialement
Fabian
"Sebastien" wrote in message news:%
Bonjour,
J'ai besoin de créer dans une base "base1" , une vue vers une table "matable" d'une autre base "base2". Mais pour qu'un utilisateur puisse accéder aux données de table1 par l'intermédiaire de la vue, il faut non seulement que l'utilisateur existe dans les 2 bases (ça ok, je peux comprendre), mais aussi qu'il ait les droits sur la table table1, ce que je trouve totalement illogique. Ce comportement n'apparait pas lorsque la vue s'effectue sur une table de la même base.
Est-ce que quelqu'un peut me fournir une explication ou une solution pour ne pas avoir à mettre 2 fois les droits sur la table et sur la vue ?
Merci d'avance Sébastien
Exemple pour reproduire le problème
/* depuis une connexion sa */ use base2 go create table matable(col1 as integer) go use base1 go create view mavue1 as select * from base2.dbo.matable grant select on mavue1 to toto go use base2 go create view mavue2 as select * from dbo.matable grant select on mavue2 to toto go
/* depuis une connexion toto autorisee dans les 2 bases base1 et base2 */ select * from base1..mavue1 /* ==> ne fontionne pas car droit d'accés refusé sur matable */ select * from base2..mavue2 /* ==> fontionne */
Sebastien
Merci beaucoup. Faut que je teste, mais d'après la description de cette option, ça semble correspondre à mon problème.
Sinon une remarque un peu hors-sujet : le logiciel de traduction en français dans la base de connaissance sur support.microsoft.com, vous en êtes vraiment satisfait ??? Car je trouve que par moment ... en fait souvent ... c'est vraiment du n'importe quoi :-(
Cordialement. Sébastien
"Fabian SIRACH [MS]" a écrit dans le message de news:%
Bonjour,
Pouvez-vous regarder si l'option "Cross Database Ownership" correspond à votre besoin et si oui, il est requis de l'activer au niveau de l'instance SQL Server (Requiert le SP3a de SQL 2000) via Enterprise Manager ou sp_dboption. Plus d'informations dans l'aide en ligne SQL Server, rubriques "Using Ownership Chains" et "Cross DB Ownership Chaining". Merci également de
bien
valider les contraintes de sécurité que cette option pose.
Cordialement
Fabian
"Sebastien" wrote in message news:% > Bonjour, > > J'ai besoin de créer dans une base "base1" , une vue vers une table > "matable" d'une autre base "base2". > Mais pour qu'un utilisateur puisse accéder aux données de table1 par > l'intermédiaire de la vue, il faut non seulement que l'utilisateur
existe
> dans les 2 bases (ça ok, je peux comprendre), mais aussi qu'il ait les > droits sur la table table1, ce que je trouve totalement illogique. > Ce comportement n'apparait pas lorsque la vue s'effectue sur une table
de
> la > même base. > > Est-ce que quelqu'un peut me fournir une explication ou une solution
pour
> ne > pas avoir à mettre 2 fois les droits sur la table et sur la vue ? > > Merci d'avance > Sébastien > > Exemple pour reproduire le problème > > /* depuis une connexion sa */ > use base2 > go > create table matable(col1 as integer) > go > use base1 > go > create view mavue1 as select * from base2.dbo.matable > grant select on mavue1 to toto > go > use base2 > go > create view mavue2 as select * from dbo.matable > grant select on mavue2 to toto > go > > /* depuis une connexion toto autorisee dans les 2 bases base1 et base2
*/
> select * from base1..mavue1 /* ==> ne fontionne pas car droit d'accés > refusé > sur matable */ > select * from base2..mavue2 /* ==> fontionne */
Merci beaucoup.
Faut que je teste, mais d'après la description de cette option, ça semble
correspondre à mon problème.
Sinon une remarque un peu hors-sujet : le logiciel de traduction en français
dans la base de connaissance sur support.microsoft.com, vous en êtes
vraiment satisfait ??? Car je trouve que par moment ... en fait souvent ...
c'est vraiment du n'importe quoi :-(
Cordialement.
Sébastien
"Fabian SIRACH [MS]" <fabians@online.microsoft.com> a écrit dans le message
de news:%23J1CpmaHFHA.2976@TK2MSFTNGP15.phx.gbl...
Bonjour,
Pouvez-vous regarder si l'option "Cross Database Ownership" correspond à
votre besoin et si oui, il est requis de l'activer au niveau de l'instance
SQL Server (Requiert le SP3a de SQL 2000) via Enterprise Manager ou
sp_dboption.
Plus d'informations dans l'aide en ligne SQL Server, rubriques "Using
Ownership Chains" et "Cross DB Ownership Chaining". Merci également de
bien
valider les contraintes de sécurité que cette option pose.
Cordialement
Fabian
"Sebastien" <sebastien.dubosc.n0spa3@laposte.net> wrote in message
news:%23zVWFIaHFHA.2156@TK2MSFTNGP09.phx.gbl...
> Bonjour,
>
> J'ai besoin de créer dans une base "base1" , une vue vers une table
> "matable" d'une autre base "base2".
> Mais pour qu'un utilisateur puisse accéder aux données de table1 par
> l'intermédiaire de la vue, il faut non seulement que l'utilisateur
existe
> dans les 2 bases (ça ok, je peux comprendre), mais aussi qu'il ait les
> droits sur la table table1, ce que je trouve totalement illogique.
> Ce comportement n'apparait pas lorsque la vue s'effectue sur une table
de
> la
> même base.
>
> Est-ce que quelqu'un peut me fournir une explication ou une solution
pour
> ne
> pas avoir à mettre 2 fois les droits sur la table et sur la vue ?
>
> Merci d'avance
> Sébastien
>
> Exemple pour reproduire le problème
>
> /* depuis une connexion sa */
> use base2
> go
> create table matable(col1 as integer)
> go
> use base1
> go
> create view mavue1 as select * from base2.dbo.matable
> grant select on mavue1 to toto
> go
> use base2
> go
> create view mavue2 as select * from dbo.matable
> grant select on mavue2 to toto
> go
>
> /* depuis une connexion toto autorisee dans les 2 bases base1 et base2
*/
> select * from base1..mavue1 /* ==> ne fontionne pas car droit d'accés
> refusé
> sur matable */
> select * from base2..mavue2 /* ==> fontionne */
Merci beaucoup. Faut que je teste, mais d'après la description de cette option, ça semble correspondre à mon problème.
Sinon une remarque un peu hors-sujet : le logiciel de traduction en français dans la base de connaissance sur support.microsoft.com, vous en êtes vraiment satisfait ??? Car je trouve que par moment ... en fait souvent ... c'est vraiment du n'importe quoi :-(
Cordialement. Sébastien
"Fabian SIRACH [MS]" a écrit dans le message de news:%
Bonjour,
Pouvez-vous regarder si l'option "Cross Database Ownership" correspond à votre besoin et si oui, il est requis de l'activer au niveau de l'instance SQL Server (Requiert le SP3a de SQL 2000) via Enterprise Manager ou sp_dboption. Plus d'informations dans l'aide en ligne SQL Server, rubriques "Using Ownership Chains" et "Cross DB Ownership Chaining". Merci également de
bien
valider les contraintes de sécurité que cette option pose.
Cordialement
Fabian
"Sebastien" wrote in message news:% > Bonjour, > > J'ai besoin de créer dans une base "base1" , une vue vers une table > "matable" d'une autre base "base2". > Mais pour qu'un utilisateur puisse accéder aux données de table1 par > l'intermédiaire de la vue, il faut non seulement que l'utilisateur
existe
> dans les 2 bases (ça ok, je peux comprendre), mais aussi qu'il ait les > droits sur la table table1, ce que je trouve totalement illogique. > Ce comportement n'apparait pas lorsque la vue s'effectue sur une table
de
> la > même base. > > Est-ce que quelqu'un peut me fournir une explication ou une solution
pour
> ne > pas avoir à mettre 2 fois les droits sur la table et sur la vue ? > > Merci d'avance > Sébastien > > Exemple pour reproduire le problème > > /* depuis une connexion sa */ > use base2 > go > create table matable(col1 as integer) > go > use base1 > go > create view mavue1 as select * from base2.dbo.matable > grant select on mavue1 to toto > go > use base2 > go > create view mavue2 as select * from dbo.matable > grant select on mavue2 to toto > go > > /* depuis une connexion toto autorisee dans les 2 bases base1 et base2
*/
> select * from base1..mavue1 /* ==> ne fontionne pas car droit d'accés > refusé > sur matable */ > select * from base2..mavue2 /* ==> fontionne */