Você está na página 1de 3

Separao do esquema de usurio

SQL Server 2008 R2 Outras verses

O comportamento de esquemas mudou no SQL Server 2005. Os esquemas no so mais equivalentes a usurios de banco de dados; agora, cada esquema um namespace distinto que existe independentemente do usurio do banco de dados que o criou. Em outras palavras, um esquema simplesmente um continer de objetos. Um esquema pode ser de propriedade de qualquer usurio e sua propriedade transfervel. Novo comportamento A separao de propriedade de esquemas tem implicaes importantes:

Propriedade de esquemas e protegveis de escopo de esquema so transferveis. Para obter mais informaes, consulte ALTER AUTHORIZATION (TransactSQL). Objetos podem ser movimentados entre esquemas. Para obter mais informaes, consulte ALTER SCHEMA (Transact-SQL). Um nico esquema pode conter objetos de propriedade de vrios usurios de banco de dados. Vrios usurios de banco de dados podem compartilhar um nico esquema padro. Permisses de esquemas e protegveis contidos em esquema podem ser gerenciados com maior preciso que em verses anteriores. Para obter mais informaes, consulte Permisses de esquema GRANT (Transact-SQL) e Permisses de objeto GRANT (Transact-SQL). Um esquema pode ser propriedade de qualquer banco de dados principal. Isso inclui funes e funes de aplicativo. Um usurio de banco de dados pode ser descartado sem descartar objetos em um esquema correspondente. Cdigos gravados em verses anteriores do SQL Server podem retornar resultados incorretos, caso o cdigo assuma que os esquemas so equivalentes aos usurios do banco de dados. Exibies do catlogo criadas para verses anteriores do SQL Server podem retornar resultados incorretos. Isso inclui sysobjects. Ao criar um objeto de banco de dados, se voc especificar uma entidade de segurana de domnio vlida (usurio ou grupo) como proprietria do objeto, a entidade de segurana de domnio ser adicionada ao banco de dados como um esquema. O novo esquema pertencer a essa entidade de segurana de domnio.

Novas exibies do catlogo

A partir do SQL Server 2005, os esquemas so entidades explcitas refletidas em metadados. Como resultado, os esquemas s podem ter um proprietrio, mas um nico usurio pode possuir vrios esquemas ou nenhum. Essa relao complexa no se reflete nas tabelas do sistema do SQL Server 2000, portanto o SQL Server 2005 apresentou novas exibies do catlogo que refletem com preciso os novos metadados. A tabela a seguir mostra o mapeamento entre as tabelas do sistema do SQL Server 2000 e o SQL Server 2005 equivalente e exibies do catlogo posteriores. Tabelas do sistema SQL Server 2000 sysusers syslogins sys.schemas sys.server_principals SQL Server 2005 e exibio do catlogo posterior sys.database_principals

O SQL Server 2005 introduziu mais de 250 novas exibies do catlogo. altamente recomendvel que voc use as novas exibies do catlogo para acessar metadados. Para obter mais informaes, consulte Exibies de catlogo (Transact-SQL). Novas instrues DDL podem introduzir complexidades em metadados do sistema que no sejam refletidas com preciso em exibies do catlogo antigas, como sysobjects. No exemplo a seguir, a ID do usurio e o nome do esquema retornados por sysobjects esto fora de sincronia e no refletem a diferena entre o usurio e o esquema introduzido no SQL Server 2005.
USE tempdb GO CREATE LOGIN u1 WITH PASSWORD = 'Mdfjd$sakj943857l7sdfh##30' CREATE USER u1 WITH DEFAULT_SCHEMA = u1 GO GRANT CREATE TABLE to u1 GO CREATE SCHEMA sch1 GO CREATE SCHEMA u1 AUTHORIZATION u1 GO EXECUTE AS user = 'u1' GO CREATE TABLE t1(c1 int) GO revert GO SELECT user_name(uid) , * FROM sysobjects WHERE name = 't1' GO

Cuidado Voc deve usar as novas exibies do catlogo em qualquer banco de dados nos quais qualquer uma das seguintes instrues DDL nunca foi usada: CREATE/ALTER/DROP SCHEMA; CREATE/ALTER/DROP USER; CREATE/ALTER/DROP ROLE; CREATE/ALTER/DROP APPROLE; ALTER AUTHORIZATION.

Esquemas padro

Para resolver os nomes dos protegveis que no so nomes completamente qualificados, o SQL Server 2000 usa a resoluo de nomes para verificar o esquema pertencente ao usurio do banco de dados que faz a chamada e o esquema pertencente ao dbo. A partir do SQL Server 2005, cada usurio tem um esquema padro. O esquema padro pode ser definido e alterado com a opo DEFAULT_SCHEMA de CREATE USER ou ALTER USER. Se DEFAULT_SCHEMA for deixado indefinido, o usurio do banco de dados ter dbo como seu esquema padro. Consulte tambm Referncia CREATE SCHEMA (Transact-SQL) ALTER AUTHORIZATION (Transact-SQL) CREATE USER (Transact-SQL) ALTER USER (Transact-SQL) CREATE SCHEMA (Transact-SQL) ALTER SCHEMA (Transact-SQL) sys.schemas (Transact-SQL) Conceitos Hierarquia de permisses (Mecanismo de Banco de Dados) Entidades (Mecanismo de Banco de Dados) Protegendo o SQL Server

Você também pode gostar