我是SQL Server新手。我通过SQuirrel Client连接到SQL服务器。
连接网址:
jdbc:sqlserver://192.xx.xx.xx:1433;databaseName=ep
用户名& 密码
然后我在table1
-
schema1
的查询
SELECT * from table1
它返回了记录。我在查询中没有提到模式名称。
可能有不同的sachems(相同的数据库)具有相同名称的表。
我是对的吗?如果是,那么它将如何解析模式名称?
答案 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和您的用户(运行该命令的用户)