远程连接数据库
isql -U tester -P guest1234 -H 192.168.1.54:4205 -D staticdb -S mysybas
 -U 和 -P 指定有用户和密码
 -H 远程主机IP:端口 
 -D 数据库名
 -S 服务名

本地连接数据库

isql -U tester -P guest1234 -S MYSYBASE -D testdb
 sp_helpuser
 sp_tablesisql -U tester -P guest1234 -S MYSYBASE
 use testdb
 sp_helpuser
 sp_tables

查看版本
select @@version
go

创建设备
注意设备编号vdevno不能重复;size单位是2K,数据设备size=5120000 即大小为 5120000*2K≈10G,日志设备的size=102400,即 102400*2K≈200M

disk init name="testdb_dbdev",physname="/opt/sybase/data/testdb_dbdev.dat",vdevno=10,size=5120000 
 go
 disk init name="testdb_logdev",physname="/opt/sybase/data/testdb_logdev.dat",vdevno=11,size=102400  
 go

查看设备状态
sp_helpdevice   [设备名]
如果不指定设备名,则查看所有设备状态

删除设备
注意需要确定该设备上没有数据库后再删除设备

sp_dropdevice testdb_dbdev
 sp_dropdevice testdb_logdev.dat
 exit


删除设备物理文件

rm -rf /opt/sybase/data/testdb_dbdev.dat
 rm -rf /opt/sybase/data/testdb_logdev.dat

创建数据库(并单独指定设备)
create database testdb on testdb_dbdev=1024 log on testdb_logdev=200 
go 
创建时指定数据设备和日志设备,并限制设备的使用大小,数据设备可使用大小为1024M,日志设备可使用大小为200M

如果不独立指定设备,则直接使用下面命令创建即可:
create database

查看创建结果:
sp_helpdb

删除数据库

use master
 drop database testdb
 sp_helpdb

扩展数据库(如果大小不够时可以扩展)
alter database db_name on device_name=size,device_name =size log on device_name=size,device_name=size
数据库 testdb 在设备 testdb_dbdev 上扩展100M,在日志设备 testdb_logdev 上扩展20M:
alter database testdb on testdb_dbdev=100 log on testdb_logdev=20

创建登录用户并使之成为新建库的owner、并设置数据库为用户的默认库、设置

sp_addlogin test,123456
 go
 sp_role 'grant',oper_role,test
 go
 use testdb
 go
 sp_changedbowner testdb
 go
 sp_modifylogin testdb,defdb,testdb 
 go
 sp_modifylogin testdb,deflanguage,chinese
 go

查看所有数据库及大小等详情
sp_helpdb

sybase默认系统库:
master :包含一些系统表,存储管理Adaptive Server所用的数据
model :用于创建新数据库的模板数据库
sybsystemprocs :包含存储系统存储过程的表
sybsystemdb :包含用于分布式事务管理特性的数据
tempdb :包含临时表

创建登陆用户
sp_addlogin login_name,passwd[,defaultdb[,deflanguage[,fullname]]]
> sp_addlogin tester,123456,testdb      依次指定用户名、密码、默认数据库
> go

修改登录用户

sp_modifylogin loginame,option,value
 > sp_modifylogin tester,defdb,testdb
 > go
 > sp_modifylogin tester,deflanguage,chinese
 > go

修改登录用户密码
sp_password old_passwd, new_passwd [, loginame, immediate]
将sa用户的密码"123456"修改设置为NULL
sp_password "123456", NULL, "sa"

将sa用户的密码NULL修改为"123456"
sp_password null,'123456','sa'

修改登录失败错误尝试最大次数为10
尝试登录失败达到最大次后将被锁定,再次登录提示内容跟输错密码一样,客户端无法区分输入有误还是被锁定
sp_modifylogin tester,"max failed_logins","10"

查看登录用户账户状态
select name, status from syslogins
0代表正常,1代表口令字符数太少,2代表帐号锁定,4代表口令过期

解锁登录用户账户
sp_locklogin "tester","unlock"

删除登陆用户
> sp_droplogin tester
> go

创建数据库用户
由于Sybase是多数据库结构,为了对多个数据库中的用户进行统一管理,因此使用了登录用户和数据库用户。
登录用户:sp_addlogin添加的用户,用来登录Sybase数据库,就是我们连接数据库时使用的用户。如果登录用户没有添加到某一个数据库中,它将无法操作某一数据库。
数据库用户:sp_adduser添加的用户,用来管理使用数据库,在所属数据库中是唯一的。
因此同一个登录用户可以对应多个不同数据库的数据库用户。
为了使用Sybase ASE上的数据库,必须在数据库中有一个用户,这个用户是数据库所有者(db owner)通过sp_adduser来增加的。
sp_adduser login_name[,name_in_db[,grpname]]   #创建数据库用户 loginname 和 name_in_db 可以相同

> sp_adduser tester
 > go

删除数据库用户

> sp_dropuser tester
 > go

修改该用户为数据库的dbo

> use testdb
 > sp_changedbowner tester

查看数据库用户信息

sp_displaylogin [login_name]
 > sp_displaylogin tester
 > sp_helpuser
 > sp_who

Sybase具有的系统角色包括:

System Administrator (SA)
 System Security Officer (SSO)
 Server Operator (OPER)

用户授权

授予用户tester创建对象的权限
授予创建表、缺省值、规则、存储过程还有视图的权限
grant create table,create default,create rule,create procedure,create view to tester

授予用户tester创建函数的权限
grant create function to tester

查看用户tester的权限
sp_helprotect tester
go

撤销用户权限
撤销用户tester创建函数的权限
revoke create function from tester

创建表

> create table test01 (
   ID numeric(18,0) primary key,
   NAME varchar(255) DEFAULT NULL,
   SCORE decimal(6,2) DEFAULT NULL,
   CNT int DEFAULT NULL) 
 > goinsert into test01(ID, NAME) values(1, 'jack')

执行SQL脚本

isql -SMYSYBASE -Utester -Pguest1234 -i mycreate.sql

存储过程

if exists (select 1 from sysobjects where name = 'TABLE01')
 begin
   drop table TABLE01
   print "TABLE01 dropped"
 end
 go

查看SYBASE数据库中的所有表名
select name from sysobjects where type="U"
或者
sp_tables

启动数据库
source /opt/sybase/SYBASE.sh

可以通过安装目录下的启动脚本"RUN_服务名"来启动

也可以直接通过启动命令启动数据库
$SYBASE/$SYBASE_ASE/bin/startserver -f $SYBASE/$SYBASE_ASE/install/RUN_服务名
如果有备份服务,同时启动备份服务
$SYBASE/$SYBASE_ASE/bin/startserver -f $SYBASE/$SYBASE_ASE/install/RUN_服务名_BAKUP

例如:

$SYBASE/$SYBASE_ASE/install/RUN_MYSYBASE
 $SYBASE/$SYBASE_ASE/install/RUN_MYSYBASE_BAKUP



$SYBASE/$SYBASE_ASE/bin/startserver -f $SYBASE/$SYBASE_ASE/install/RUN_MYSYBASE
 $SYBASE/$SYBASE_ASE/bin/startserver -f $SYBASE/$SYBASE_ASE/install/RUN_MYSYBASE_BAKUP

查询服务运行状态

$SYBASE/$SYBASE_ASE/install/showserver 
 F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
 0 S root        10     9  0  80   0 - 245561 futex_ 11:34 ?       00:01:52 /opt/sybase/ASE-16_0/bin/dataserver -d/opt/sybase/data/master.dat -e/opt/sybase/ASE-16_0/install/MYSYBASE.log -c/opt/sybase/ASE-16_0/MYSYBASE.cfg -M/opt/sybase/ASE-16_0 -N/opt/sybase/ASE-16_0/sysam/MYSYBASE.properties -i/opt/sybase -sMYSYBASE
 #

sybase数据库服务的查询与关闭
使用 sp_helpserver 查询状态

1> sp_helpserver
 2> go
  name       network_name   security_mechanism   server_principal   class    status    id cost 
  ---------- -------------- -------------------- ------------------ ----- ------------------------------------------------------------------------- -- ---- 
  MYSYBASE   MYSYBASE       NULL                 NULL               local  0    0   
  SYB_BACKUP MYSYBASE_BS    NULL                 NULL               NULL   timeouts, no net password encryption, writable , enable login redirecti  on 1 NULL (return status = 0)

使用 select * from sysservers 查询状态

1> select * from sysservers
 2> go
  srvid  srvstatus  srvname  srvnetname     srvclass  srvsecmech   srvcost    srvstatus2  srvprincipal                                                                                                                                                                                                                                                    
  ------ --------- ---------- ----------    --------  -----------  --------   ----------  -------------
  1         8      SYB_BACKUP MYSYBASE_BS   NULL        NULL        NULL        2         NULL                                                                                                                                                                                                                                                            
  0         9      MYSYBASE   MYSYBASE      0           NULL        0           2         NULL                                                                                                                                                                                                                                                            
 (2 rows affected)
 1>

关闭备份服务(如果有备份服务,先关闭备份服务)
> shutdown SYB_BACKUP
> go
关闭主服务(可以不输入主服务名 MYSYBASE)
> shutdown
> go

启动和停止服务需要sa账号权限
 

Sybase数据库重置sa用户的密码: