Sybase ASE自动创建数据库、登录以及用户的脚本

以下的脚本能够自动创建数据库、登录、用户并能给用户分配命令权限。只需要指定用户数据库的名称,数据设备、日志设备的大小,登录名称以及登录密码即可。

局限性:

没有判断即将要创建的设备是否存在?

将数据库设备创建在和master设备同一目录下,不能提高物理IO的性能。

脚本文件下载:sybase数据库自动创建脚本.sql

-----------------------------------------------------------------------------------------------------------------------------

use master
go
declare @dbname varchar(30)
declare @MasterDevicePath varchar(255),@LogicalDataDevName varchar(30),@LogicalLogDevName varchar(30)
declare @DATDevicePath varchar(255),@LOGDevicePath varchar(255),@DataDevSize int,@LogDevSize int,@DataDevPageCount  int,@LogDevPageCount int
declare @SQLTEXT varchar(255)
declare @loginname varchar(30),@loginpasswd varchar(30)
set nocount on
begin
-- @dbname 代表将要创建的数据库名称
select @dbname='sybasenms'
-- @DataDevSize表示数据设备的大小(单位为:MBytes),@LogDevSize表示日志设备的大小(单位为:MBytes)
select @DataDevSize=100,@LogDevSize=50
-- 数据库登录名(密码与登录名相同),以及数据库用户名
select @loginname="sybasenms",@loginpasswd="sybasenms"
if not exists(select name from master.dbo.sysdatabases where name=@dbname)
  begin
    select @MasterDevicePath=phyname from master.dbo.sysdevices where name='master'
   
    select @LogicalDataDevName=@dbname+'_dat',@LogicalLogDevName=@dbname+'_log'
    select @DATDevicePath=left(@MasterDevicePath,len(@MasterDevicePath)-10)+@dbname+'_dat.dat'
    select @LOGDevicePath=left(@MasterDevicePath,len(@MasterDevicePath)-10)+@dbname+'_log.dat'
   
    -- 将设备的大小由MBytes换算成页数
    select @DataDevPageCount=@DataDevSize*512,@LogDevPageCount=@LogDevSize*512
    -- 分别初始化数据设备和日志设备
    disk init
      name=@LogicalDataDevName,
      physname=@DATDevicePath,
      size=@DataDevPageCount
      
    
     disk init
      name=@LogicalLogDevName,
      physname=@LOGDevicePath,
      size=@LogDevPageCount 
 
     -- 创建数据库 
     select @SQLTEXT="create database "+@dbname+" on "+@LogicalDataDevName+"="+convert(varchar,@DataDevPageCount)+" log on  "+@LogicalLogDevName+"="+convert(varchar,@LogDevPageCount)
     execute(@SQLTEXT)
     select @SQLTEXT="数据库:"+@dbname+"创建完成!"
     print @SQLTEXT
 
     -- 创建登录名和用户名,并给用户分配权限
   use master
   exec sp_addlogin @loginname,@loginpasswd,@dbname
   use @dbname
   exec sp_adduser @loginname,@loginname
   select @SQLTEXT="grant create table ,create view,create procedure to "+@loginname
   exec (@SQLTEXT)
   if exists(select 1 from sysusers where name=@loginname)
  begin
   select @SQLTEXT="数据库用户:"+@loginname+"创建完成!"
   print @SQLTEX
  • 本文链接地址:https://www.dbainfo.net/sybase-ase-auto-create-database-login-user-scripts.htm
  • 本文为dbainfo个人原创,请在尊重作者劳动成果的前提下进行转载;
  • 转载务必注明原始出处 : Sybase数据库技术,数据库恢复专家
  • 对《Sybase ASE自动创建数据库、登录以及用户的脚本》有何疑问或见解,请在本文下方发表;
  • 对网站还有其他问题或建议,请提交在留言板,谢谢!
  • 目前还没有任何评论.
    :wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)