用非sa的用户ken登录,如果ken拥有create的权限,那么他也应该拥有alter和drop的权限。这里是对这一性能的验证。

 

使用sa用户登录rs,创建ken用户,并给他create的权限。

[jieniz@replinuxb10 rs_sync_rep_mats_hp]$ isql -U sa -P Sybase123 -S REPQ2_14638_REP -I interfaces
1> create user ken set password sybase
2> go
User 'ken' is created.
1> grant create object to ken
2> go
Permission granted to user 'ken'.
1> exit

用ken用户登录,使用create,alter,drop的功能。

[jieniz@replinuxb10 rs_sync_rep_mats_hp]$ isql -U ken -P sybase -S REPQ2_14638_REP -I interfaces
1> create replication definition REPDEF with primary at ETLWIN08SP2X64CN.PDB
2> with all tables named TEST(id int, msg char(300)) primary key (id)
3> go
Msg 15094, Level 12, State 0:
Server 'REPQ2_14638_REP':
ETLWIN08SP2X64CN.PDB is not defined to the Replication Server.

这里可以看到create功能失败,因为ETLWIN08SP2X64CN.PDB这个route不存在,所以我们可以用admin who这个命令来查看一下现在活跃的route有哪些,然后使用一个活跃的route来创建replication definition。

1> admin who
2> go
 Spid Name            State
         Info
 ---- --------------- --------------------
         ------------------------------------------------------------
   34 DSI EXEC        Awaiting Command
         101(1) repq3_14638.tdb3
   22 DSI             Awaiting Message
         101 repq3_14638.tdb3
   26 DIST            Awaiting Wakeup
         101 repq3_14638.tdb3
   32 SQT             Awaiting Wakeup
         101:1  DIST repq3_14638.tdb3
   17 SQM             Awaiting Message
         101:1 repq3_14638.tdb3
   16 SQM             Awaiting Message
         101:0 repq3_14638.tdb3
   35 REP AGENT       Awaiting Command
         repq3_14638.tdb3
   36 DSI EXEC        Awaiting Command
         103(1) repq0_14638.tdb1
   23 DSI             Awaiting Message
         103 repq0_14638.tdb1
   27 DIST            Awaiting Wakeup
         103 repq0_14638.tdb1
   33 SQT             Awaiting Wakeup
         103:1  DIST repq0_14638.tdb1
   19 SQM             Awaiting Message
         103:1 repq0_14638.tdb1
   18 SQM             Awaiting Message
         103:0 repq0_14638.tdb1
    8 REP AGENT       Awaiting Command
         repq0_14638.tdb1
   21 RSI             Awaiting Wakeup
         REPQ4_14638_REP
   20 SQM             Awaiting Message
         16777318:0 REPQ4_14638_REP
   37 RSI USER        Awaiting Command
         REPQ4_14638_REP
   24 dSUB            Active

    6 dCM             Awaiting Message

   14 dAIO            Awaiting Message

   28 dREC            Sleeping
         dREC
   15 dDELSEG         Awaiting Message

   47 USER            Active
         ken
    5 dALARM          Awaiting Wakeup

   29 dSYSAM          Sleeping

 

我们使用repq3_14638.tdb3这个route来验证对replication definition的操作。


1> create replication definition ken_test_rd with primary at repq3_14638.tdb3
2> with all tables named ken
3> (c1 int, c2 char(10))
4> primary key(c1)
5> go
Replication definition 'ken_test_rd' is created.
1> alter replication definition ken_test_rd replicate all columns
2> go
Replication definition 'ken_test_rd' is altered.
1> drop replication definition ken_test_rd
2> go
Replication definition 'ken_test_rd' is dropped.
1>

 

这里有一个很有意思的事情,就是,开发的测试的角度问题。我接到这个任务的时候,首先想到的是,在创建ken这个用户的时候,给他直接赋予alter和drop的权限,但是其实我并不能给ken赋权限,我甚至不能创建ken,因为我是测试,我只需要测试软件是不是有这个功能(即ken能不能进行alter和drop),我需要写的是这样一个测试用例。

posted on 2015-12-01 15:45  捉机的程序猿  阅读(200)  评论(0编辑  收藏  举报