Diferença entre esquemas de propriedade e associação de função para o Microsoft SQL Server

24

Existem diferenças entre Owned Schemase Role Members?

Pelo meu entendimento, o Role Membersusuário é obrigatório - precisa ter pelo menos uma das caixas de seleção Role Membersmarcadas.

No entanto, o Owned Schemasnão é obrigatório. Realmente me faz pensar por que é necessário ter o Owned Schemaslá dentro.

insira a descrição da imagem aqui

Jack
fonte

Respostas:

17

Maçãs e laranjas. Funções são funções e esquemas são esquemas. O fato de existir uma função chamada db_accessadmine também um esquema chamado db_accessadminnão significa que uma função seja um esquema nem que um esquema seja uma função. As funções são contêineres de associação de segurança, e o principal é membro de uma função. Os esquemas contêm objetos vinculados ao esquema do banco de dados e pertencem a um principal. Ao criar um novo usuário, você pode escolher o esquema padrão, adicioná-lo a determinadas funções e conceder a ele a propriedade dos esquemas. Embora as ações sejam separadas, os designers desta caixa de diálogo sentem que estão de alguma forma relacionados a merecer todo esse espaço em UX (isso é questionável, mas um tópico completamente diferente).

Remus Rusanu
fonte
Lendo nas entrelinhas , acho que o objetivo de ter esses esquemas é para que, por exemplo, você possa ter certos objetos graváveis ​​por usuários com a db_datareaderfunção e o esquema, que não são necessariamente legíveis por mais ninguém. Funcionaria bem para um aplicativo que precisa apenas de acesso de leitura dbo, mas precisa instalar alguns procs ou gatilhos armazenados. Obviamente, isso ainda exige que você adicione cada usuário à função e ao esquema manualmente.
jpaugh
-1

Bem ... este é um tópico muito antigo, mas ainda assim, 2 centavos de mim para quem ainda vai visitar aqui. Este link tem a melhor resposta para a consulta acima.

https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/ownership-and-user-schema-separation-in-sql-server

Um trecho do mesmo:

O SQL Server é fornecido com dez esquemas predefinidos que têm os mesmos nomes que os usuários e funções internos do banco de dados. Estes existem principalmente para compatibilidade com versões anteriores. Você pode descartar os esquemas que têm os mesmos nomes que as funções fixas do banco de dados, se não precisar deles.

Ganesh
fonte