远程连接数据库
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_tables
isql -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)
> go
insert 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用户的密码:
方法参考:https://blog.csdn.net/sunny05296/article/details/107348315
————————————————
原文链接:https://blog.csdn.net/sunny05296/article/details/107348270