存档

2010年7月 的存档,文章数:9

问题描述:

在Sybase Central中查看数据库时,在数据库目录下没有找到某个用户数据库(名字:andkylee),但是用isql连上数据库执行sp_helpdb能够 查询到andkylee的确存在。在Sybase Central中找了一会儿,竟然在代理数据库目录下找到了数据库andkylee。很是奇怪,怎么跑到代理数据库里面了。数据库andkylee就是一 个普通的用户数据库而已。

继续,依次展开代理数据库里面的andkylee库的目录,却找不到任何的用户表。代理表目录空空的,也没有用户表目录(真正的代理数据库中没有用户表)。纳闷了,andkylee库里的用户表都跑到哪里去了?

不过,用其它的数据库客户端工具是能够查询到andkylee库里面的用户表数据的。比如:用isql连上数据库,进入到andkylee库里。 sp_help可以查看到所有的对象名称。发现用户表都在,执行select能够查看到表的数据。其它的比 如:powerbuilder,dbartisan里面都能够在tables目录下面找到andkylee库里的所有表。看来,用户数据库 andkylee没多少异常。是普通库而不是代理数据库。

分析原因:

一开始,我以为是andkylee库里的用户没有关联上登陆账号引起的。这个情况是比较常见的。

在master库中执行:select suid ,name from syslogins where name='escourt4'

1> select suid ,name from syslogins where name='escourt4'
2> go
 suid        name
 ----------- ------------------------------
           5 escourt4
(1 row affected)

登录escourt4对应的suid为:5。

在进入到用户库andkylee里面。

1> use andkylee
2> go
1> select suid,uid,name from sysusers where name='escourt4'
2> go
 suid        uid         name
 ----------- ----------- ------------------------------
           5           3 escourt4
(1 row affected)

可以看出库andkylee里面的用户escourt4的uid为:3,它的suid为:5,正是对应的登录escourt4的suid。这没有问题,是正常的!