现在是两个问题,一个就是用Delphi新建一个登录用户,另外一个就是用刚才新建的登录用户,把一个数据库还原到数据库里(原来没有这个数据库),并且用刚建的用户可以连接这个数据库

解决方案 »

  1.   

    MSSQL我就会,delphi今天开始学
    //具体的存储过程名字可能打错,自己查阅
    创建登陆:
    sql:='exec sp_addlogin ''hyc'',''pwd''';
    创建数据库用户:
    sql:='use database_name go exec sp_grantdb_access ''hyc'',''houyichong''';
    授予权限
    sql:='use database_name go grant all to houyichong';
      

  2.   

    procedure Tfm_main.dxBarLargeButton9Click(Sender: TObject);
    var DEF_DBNAME,DEF_BAKNAME:string;
    begin
    if opendialog1.Execute then
    begin
       DEF_BAKNAME:=opendialog1.FileName;
       DEF_DBNAME:=Dm_conn.conn.DefaultDatabase;
    try
         dm_conn.tempquery.Close ;
         dm_conn.tempquery.SQL.Clear;
         dm_conn.tempquery.SQL.Add('Use master');
         dm_conn.tempquery.SQL.Add('ALTER DATABASE '+ DEF_DBNAME +' SET OFFLINE WITH ROLLBACK IMMEDIATE');
         dm_conn.tempquery.SQL.Add('Restore Database '+ DEF_DBNAME +' From disk= '''+DEF_BAKNAME+'''');
         dm_conn.tempquery.SQL.Add('ALTER DATABASE '+ DEF_DBNAME +' SET ONLINE WITH ROLLBACK IMMEDIATE');
         Screen.Cursor := crSQLWait ;
         try
           dm_conn.tempquery.ExecSQL ;
         ShowMessage('数据库恢复操作完成,请重新启动程序!');
         application.Terminate;
         finally
           Screen.Cursor := crDefault ;
         end ;
       except
         ShowMessage('数据库恢复操作没有完成,请稍侯重试。');
       end ;
    end;
    end;