SQL Server中模式名称的含义是什么?

时间:2016-02-22 11:31:33

标签: sql-server

我是SQL Server新手。我通过SQuirrel Client连接到SQL服务器。

连接网址:

jdbc:sqlserver://192.xx.xx.xx:1433;databaseName=ep

用户名& 密码

然后我在table1 -

中尝试了对schema1的查询
SELECT * from table1 

它返回了记录。我在查询中没有提到模式名称。

可能有不同的sachems(相同的数据库具有相同名称的表

我是对的吗?如果是,那么它将如何解析模式名称?

2 个答案:

答案 0 :(得分:0)

Schema的工作方式类似于SQL SERVER中的命名空间,您可以在模式下创建表,视图,sps,并对这些对象设置GRANT,DENY或REVOKE权限。来自Implementation of Database Object Schemas

  

SQL Server 2005实现了数据库对象模式的概念。模式是一个独特的命名空间,用于促进数据库对象的分离,管理和所有权。它消除了数据库对象和所有者的紧密耦合,以改进数据库对象的安全管理。数据库对象模式提供了控制和帮助保护SQL Server早期版本中不可用的数据库环境中的应用程序对象的功能。

只是想在此添加,如果您没有指定任何架构,则选择 dbo 作为架构。

答案 1 :(得分:0)

它的主人是杰出的。每个对象(table,view,proc)都有一个必须是数据库中用户的所有者。例如,您可能在同一个数据库中有user1.table1和user2.table2。

所以你可以输入

select * from user1.table1

select * from user2.table1

您可能会看到dbo.table_name等名称,这意味着所有者是dbo,即数据库所有者。如果您未指定所有者,则系统会检查dbo和您的用户(运行该命令的用户)