我把客户那里的一个数据库附加过来,在访问的时候必须加用户名才可以,比如我用aaa用户登录数据库,在select语句中必须用select * from aaa.表名才可以访问,用select * from 表名不可以,这是什么原因呢?
解决方案 »
- 2008的客户端无法远程连接2005的服务端
- 一条SQL可以 同时修改某字段的 类型 和默认值?
- 求助,一个关于重名数据计算的问题
- -----------我的一些笔记(基于SQL 2005)----
- 急,关于SQL Server 2000系统目录视图的几个问题(如何使用替代方法实现SQL Server 2005相应系统目录视图的某些字段)?
- 用 java 和 iBATIS 调用sql存储过程时,是否支持表变量参数呢?
- SQL2005使用维护计划备份数据库报错
- 邹建帮忙
- 音乐网 日,周,月等排行实现方法?
- 如何禁止灾难性删除?
- mssql的where条件过滤时是先执行前面的判断语句还是后面的判断语句!
- 还原数据库中排它问题?
权限问题
而每个用户都可以在同一个数据库中创建属于自己的表,即使表名一样。也就是说用户A和B都可以在数据库D里面创建一个名为T的表,而且表的字段都可以不一样。而且SQl Server中通用的访问表的格式是这样的:
Select * From [ServerName].[DatabaseName].[Owner].[TableName]
默认的如果不加前面的三个字段中的任何一个的话,就以当前Server的当前Database的当前User来取代相应的内容。对于sa创建的表来说,Owner是dbo,其他的用户创建的表的Owner是用户名!如果要访问其他用户创建的表的话,当然要加上相应的用户名!而且要确保你有权限!
如果不加Owner,默認是以當前登錄的用戶名作為Owner。
自己可以動手試一下的,光看理論沒有用。