نمایش نتایج 1 تا 4 از 4

نام تاپیک: اتصال بانک اطلاعاتی به SQl Server با یک User مشخص

  1. #1

    اتصال بانک اطلاعاتی به SQl Server با یک User مشخص

    با سلام خدمت دوستان.
    من با استفاده از کد زیر یم بانک اطلاعاتی رو به SQl Server متصل میکنم .



    ADOCommand1.CommandText :='EXEC sp_attach_db @dbname = N'+QuotedStr('BridgeDB')+','+
    '@filename1 = N'+QuotedStr('F:\BridgeProject 2.0\DataBase\BridgeDB_Data.MDF')+','+
    '@filename2 = N'+QuotedStr('F:\BridgeProject 2.0\DataBase\BridgeDB_Log.LDF');
    ADOCommand1.Execute;

    اما این دستور باعث اتصال بانک اطلاعاتی با کاربر SA میشه.
    من میخوام با کاربری که خودم ایجاد کردم این بانک اطلاعاتی رو به SQl Server متصل یا اصطلاحا Attach کنم.
    ممنون میشم دوستان در این مورد راهنمایی کنند.
    یا حق

  2. #2
    کاربر دائمی آواتار حسین شهریاری
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    ایران
    پست
    797

    نقل قول: اتصال بانک اطلاعاتی به SQl Server با یک User مشخص

    سلام

    دوست عزیز این که با چه کاربری به پایگاه متصل میشید بستگی به طریقه و نحوه Connection String شما داره و دستور Attach نمیتونه تعیین کنه توسط چه کاربری این کار انجام بشه.

    برای تغییر این وضعیت شما باید یک User تعریف کنید و کانکشن اصلی برنامه را با آن User تنظیم کنید
    پس وقتی کانکشن شما از طریق آن User باشه عمل Attach شما هم تحت تاثیر همان انجام میشود.
    مثلا این یه نوع کانکشنی هستش که من خودم توی برنامم ازش استفاده کردم.ومبتنی بر یک User است:
    Provider=SQLOLEDB.1;Password=110;Persist Security Info=True;User ID=Hos;Initial Catalog=Sepehr

  3. #3

    Question نقل قول: اتصال بانک اطلاعاتی به SQl Server با یک User مشخص

    نقل قول نوشته شده توسط shahriar63 مشاهده تاپیک
    سلام

    دوست عزیز این که با چه کاربری به پایگاه متصل میشید بستگی به طریقه و نحوه Connection String شما داره و دستور Attach نمیتونه تعیین کنه توسط چه کاربری این کار انجام بشه.

    برای تغییر این وضعیت شما باید یک User تعریف کنید و کانکشن اصلی برنامه را با آن User تنظیم کنید
    پس وقتی کانکشن شما از طریق آن User باشه عمل Attach شما هم تحت تاثیر همان انجام میشود.
    مثلا این یه نوع کانکشنی هستش که من خودم توی برنامم ازش استفاده کردم.ومبتنی بر یک User است:
    Provider=SQLOLEDB.1;Password=110;Persist Security Info=True;User ID=Hos;Initial Catalog=Sepehr
    با سلام وتشکر
    دوست عزیز ، من خودم میدونم که باید User ایجاد کنم .
    شما وقتی که این کد رو اجرا میکنید در حقیقت بانک اطلاعاتی رو به قسمت DataBase برنامه Sql Server متصل میکنید ، ولی هنگام Attach کاربر پیش فرض برای Owner بانک اطلاعاتی انتخاب میشه. در صورتی که من میخوام کاربری که ایجاد کردم به عنوان Owner بانک شناخته بشه.
    حالا بعد با دستور Connction String عمل اتصال دلفی با SQl Server رو انجام می دهیم.
    پس تا زمانی که بانک اطلاعاتی به SQl Server متصل نیست شما چطوری میخواهید با اون ارتباط برقرار کنید؟
    ممنون میشم دوستان راهنمایی کنند.

  4. #4

    نقل قول: اتصال بانک اطلاعاتی به SQl Server با یک User مشخص

    در پی پاسخ های بیشمار دوستان خودم دست به کار شدم و روش اون رو هم مینویسم تا اگه دوستان خواستند از اون استفاده کنند.
    برای این که بتونیم یک بانک اطلاعاتی رو با یک کاربر خاص به SQl Server متصل کنیم میتونید از کد زیر استفاده کنید:

    البته مراحلش رو قدم به قدم میگم:

    1) اتصال بانک اطلاعاتی که روی هارد قرار دارد به SQL Server:


    ADOCO.CommandText:='EXEC sp_attach_db @dbname = N'+QuotedStr('BridgeDB')+','+
    '@filename1 = N'+QuotedStr(ExtractFilePath(Application.ExeName)+ 'DataBase\BridgeDB_Data.MDF')+','+
    '@filename2 = N'+QuotedStr(ExtractFilePath(Application.ExeName)+ 'DataBase\BridgeDB_Log.LDF');
    ADOCO.Execute;
    2) ایجاد کاربر مورد نظر در SQl Serevr:


    ADOCO.CommandText := 'Exec SP_AddLogin ' + QuotedStr('user name') +
    ',' + QuotedStr('Password') + ',' + QuotedStr('DataBase name') + ';';
    ADOCO.Execute;
    3) تغییر Owner یک بانک اطلاعاتی یا اصطلاحا همون کاربر بانک اطلاعاتی


    ADOCO.CommandText:='use BridgeDB';
    ADOCO.Execute;
    ADOCO.CommandText:='EXEC sp_changedbowner '+QuotedStr('UserName');
    ADOCO.Execute;
    امیدوارم مورد قبول دوستان واقع بشه
    یا حق


برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •