只要你有该表的SELECT权
select * from sun.testsun testsun select * from dbo.testsun testsun
select * from sun.testsun testsun select * from dbo.testsun testsun
解决方案 »
- sql server 导入数据保持原有的Id不变
- 用户名不区分大小写
- 求一个奇怪的SQL视图语句。
- 根据皱建大哥的代码,如何去掉这个重复的数据?
- 请教大家一条统计SQL语句!!
- 这句话的日期部分该怎么表达:rs.open("select * from info where flag>=1 and sortid is not null and dateandtime=""&date&"""),conn,
- 链接服务器无法查询:默认设置 SQL Server 不允许远程连接这个事实可能会导致失败
- 求一个查询语句
- 问一个CASE的问题
- Access数据库表关系设置
- 删除某个表中的前1000条记录的SQL语句怎么写?
- 请问:如何判断一个备份设备已经创建?
“不过你如果有权限实用其他用户的表,而且其他用户的表名与你的表名没有重复,你就可以直接使用表名,而不需要加入用户名作为前缀。“我在sun用户下新建的testsun, xie有select权限
xie下肯定没有testsun, 但 select * from testsun 不可以,说 testsun是
非法对象,加上 sun.testsun就可以, 还需要其他设置吗?对了,我实在sqlserver里面的查询分析器里执行的
那么,这个表所有用户只要有select权限,都可以直
接使用表名testsa,而不需要加入用户名dbo作为前缀。那么,sun下的select是否可以通过权限设置,使别的用户也
可以直接使用?xiexie
即使直接用sa 用户登陆,一样不能直接查 testsun ,必须是
sun.testsun才可以。
比如有一张发票表A,上面同时有开票员编码和审核员编码字段,而他们有都是用户表B中的用户编码,如果你想只用一个视图或语句就把开票员和审核员查出来,你怎么实现??只有用别名才能实现!请看:
select b1.用户名称 as 开票员,b2.用户名称 as 审核员 from a
left join b b1 on b1.用户编码=a.开票员编码
left jion b b2 on b2.用户编码=a.审核员编码
当然,最常用的就是简化表名称,如果sql语句中的表名称很长,则使用短小的别名可以是你少写很多字。例如:
select computertable.code ,computertable.name,pricetable.price
from computertable,pricetable where ....
和
select a.code ,a.name,b.price
from computertable a,pricetable b where ....
哪个你更短小精悍呢?
如果你想不输入用户名,而直接输对象名的话,好像只能先建个视了,如下:
setuser 'xie'
create view testsa
as
select * from sun.testsa
go
然后xie用户就可直接使用下面的句子:
select * from testsa
你为什么要用用户的名义建表呢,你如果用角色的名义建表的话,只需要把新来的用户加入这个角色之后,就可以拥有对表直接管理的权限。
而却你也可以通过对角色权限的限制,实现你的安全管理,而却是你的管理很方便,也很灵活。
现在的处理办法是你新建一个属于DBO角色(或者是你自建的角色)的相同的表,然后以sun的名义把此表中的数据导入到新表中,就可以实现通用的功能。
你也可以用SQL Server的DTS做这件事情,很方便。
比如我刚新建了一个 标准角色的 角色 “aaa”
下一步要建表,如何做?谢谢
因此你的要求只能通过视图来曲线救国。
比如我刚新建了一个 标准角色的 角色 “aaa”
下一步要建表,如何做?谢谢