التأمين في سيكويل سيرفر: التوثيق 4 – تعديل المستخدمين

This article is available in English too, check it out here.

اقرأ المزيد عن تأمين سيكويل سيرفر هنا.

هذه السلسلة

من هذه السلسلة:

المحتويات

محتويات هذا الموضوع:

  • تعديل المستخدمين
  • المحتويات
  • نظرة خاطفة
  • مقدمة
  • تعديل مستخدم
    • استخدام لوحة التحكم
    • استخدام جمل T-SQL
      • تغيير الاسم وكلمة المرور
      • توقيف/تفعيل مستخدم
    • استخدام الكود
  • خاتمة
  • ماذا بعد

نظرة خاطفة

درسنا اليوم هو الرابع في هذه السلسلة، ويتكلم عن كيفية تعديل بيانات المستخدمين المسجلين في سيكويل سيرفر. نتكلم اليوم عن كيفية تعديل اسم وكلمة مرور مستخدم وكذلك كيفية إيقافه وتفعيله مرة أخرى، ونعتمد في ذلك على ثلاثة طرق. الأولى باستخدام لوحة تحكم سيكويل سيرفر SQL Server Management Studio، الثانية باستخدام جمل وأوامر T-SQL، الثالثة باستخدام الكود.

إذا لم تكن لديك أي فكرة عن التوثيق في سيكويل سيرفر أو عن المستخدمين وكيفية عرضهم أو إضافتهم، فننصحك بقراءة المزيد من الدروس السابقة في هذه السلسلة أولا.

مقدمة

قرأنا في السابق عن التوثيق في سيكويل سيرفر وتعلمنا كيفية عرض المستخدمين المسجلين حاليا وكيفية إضافة مستخدمين جدد إلى سيكويل سيرفر ومع الوقت تظهر لنا تحديات أخرى، أحدها نتكلم عنه اليوم وهو كيفية تعديل مستخدم مسجل في سيكويل سيرفر.

ماذا نقصد بالتعديل؟ نقصد بالتعديل تغيير بيانات الدخول لهذا المستخدم المتمثلة في اسمه وكلمة المرور الخاصة به. كما نقصد أيضا بمصطلح التعديل إيقاف أو تفعيل هذا المستخدم وفرض قيود أو سياسات على تعاملاته والصلاحيات التي يملكها، وهذه الأخيرة نستعرضها في الجزء الأخير من هذه السلسلة ألا وهو التفويض.

تعديل مستخدم

الجزء الثالث معنا من هذا الموضوع هو كيفية تعديل مستخدم موجود مسبقا. لديك حاليا مستخدم وتريد تعديل بياناته أو مثلا توقيفه، كيف يمكنك هذا؟

بالطبع بثلاثة طرق:

  1. باستخدام لوحة التحكم SQL Server Management Studio.
  2. باستخدام أوامر T-SQL.
  3. باستخدام إجراءات مسجلة Stored Procedure.

للأسف لا يمكنك إجراء تعديلات على نظام تأمين سيكويل سيرفر للنسخة Express من خلال الفيجوال ستوديو ولكن يمكنك تطبيق الأكواد وأوامر T-SQL.

استخدام لوحة التحكم

ليس جديدا عليك، قم بفتح لوحة التحكم ثم انتقل من شاشة Object Browser على اليسار إلى السيرفر ثم إلى Security ثم إلى Logins. ومن القائمة اليسرى أو حتى من الشاشة التي ظهرت أمامك على اليمين والتي تحوي قائمة بأسماء المستخدمين قم باختيار المستخدم الذي تريد تعديله واختيار Properties من القائمة المنسدلة الخاصة به أو بالضغط عليه مرتين بزر الفأرة الأيسر لتظهر لك شاشة خصائص المستخدم (شكل 1.(

شكل 1 - لوحة إدارة سيكويل سيرفر - خصائص المستخدم

شكل 1 - لوحة إدارة سيكويل سيرفر - خصائص المستخدم

من خلال هذه الشاشة تستطيع تعديل كافة البيانات الخاصة بهذا المستخدم، والتي يهمنا منها فقط للآن كلمة مروره والسياسات التي تتطبق عليها. لاحظ إذا المستخدم الذي حددته هو مستخدم ويندوز فبالطبع لن يمكنك تغيير كلمة مروره ولكن يمكنك التعديل في خصائص التأمين من القائمة اليسرى والتي نتعرض لها بإذن الله تعالى في موضوع آخر.

استخدام جمل T-SQL

بما أنك تستطيع استخدام لوحة التحكم للتعديل على مستخدم فمن الأولى أن تكون هناك جملة T-SQL متوفرة بكافة الخيارات الممكنة وهي جملة ALTER LOGIN والتي لها الصيغة التالية:

ALTER LOGIN login_name
    {
    <status_option>
    | WITH <set_option> [ ,... ]
    }
<status_option> ::=
        ENABLE | DISABLE
<set_option> ::=
    PASSWORD = 'password'
    [
            OLD_PASSWORD = 'oldpassword'
      | <secadmin_pwd_opt> [ <secadmin_pwd_opt> ]
    ]
    | DEFAULT_DATABASE = database
    | DEFAULT_LANGUAGE = language
    | NAME = login_name
    | CHECK_POLICY = { ON | OFF }
    | CHECK_EXPIRATION = { ON | OFF }
    | CREDENTIAL = credential_name
    | NO CREDENTIAL
<secadmin_pwd_opt> ::=
    MUST_CHANGE | UNLOCK

لن تحتاج إلى فهم كل هذه الخيارات فقط نحتاج إلى بعضها. تابع القراءة.

تغيير الاسم وكلمة المرور

لم يكن يمكنك ذلك باستخدام لوحة التحكم، ولكن عن طريق الأمر ALTER LOGIN يمكنك تغيير اسم المستخدم أيضا وليس كلمة المرور. يمكنك استخدام هذا الأمر كما في المثال التالي:

ALTER LOGIN [My Username]
	WITH NAME = [someuser] , PASSWORD = N'newbuzzword';

قمنا أولا بتحديد اسم المستخدم الأصلي ثم قمنا بتحديد الاسم الجديد وكلمة المرور.

توقيف/تفعيل مستخدم

هذه أيضا متوفرة فقط في T-SQL وهي إيقاف المستخدم أو تفعيله، ويتم ذلك عن طريق أيضا الأمر ALTER LOGIN والذي يستخدم كالتالي:

ALTER LOGIN [someuser] DISABLE;

بتحديد كلمة DISABLE يتم توقيف المستخدم وبالتالي لن يمكنك الدخول به. وباستخدام كلمة ENABLE بدلها يمكنك إعادة تفعيله.

استخدام الكود

الآن إلى مرحلة الكود. بالطبع سنستخدم أوامر T-SQL السابقة في تطبيق عملية التعديل على المستخدمين من خلال أكواد الدوت نت. الكود التالي يقوم بتعديل بيانات المستخدم الذي قمنا بإنشائه سابقا ثم يقوم بمحاولة الاتصال باستخدام البيانات الجديدة. لاحظ أن الكود يستخدم تقنية جديدة لإنشاء نصوص الاتصال Connection String وهي عن طريق استخدام العنصر System.Data.SqlClient.SqlConnectionStringBuilder (بالطبع هذا ليس مطلوبا ولكن أظنها فكرة لطيفة):

    // Log in using Windows authentication
    SqlConnection conn = new SqlConnection
        ("Data Source=;Initial Catalog=;Integrated Security=True");
    SqlCommand cmd =
        new SqlCommand("ALTER LOGIN [someuser] DISABLE;", conn);
    try
    {
        conn.Open();
        // Connected
        cmd.ExecuteNonQuery();
        // Succeeded
        conn.Close();
        // Another technique to create your connection string
        SqlConnectionStringBuilder builder =
            new SqlConnectionStringBuilder(conn.ConnectionString);
        // Use this line to remove the Windows auth keyword
        // builder.Remove("Integrated Security");
        // Or else, set Windows authentication to False
        builder.IntegratedSecurity = false;
        builder.UserID = "someuser";
        builder.Password = "newbuzzword";
        conn.ConnectionString = builder.ToString();
        // The following line would raise the error 18470
        conn.Open();
        // Connected
        conn.Close();
        // Closed
    }
    catch (SqlException ex)
    {
        if (ex.Number == 18470)
            Console.WriteLine("Account disabled.");
        else
            Console.WriteLine("{0}: {1}",
                ex.Number, ex.Message);
    }
    finally
    {
        cmd.Dispose();
        conn.Close();
    }

خاتمة

تعلمنا كيفية التعديل على بيانات المستخدم. وعرفنا أنه يمكننا تعديل المستخدم بأكثر من طريقة، باستخدام لوحة التحكم، أو باستخدام أوامر الـ T-SQL والتي يمكن استغلالها من خلال كود الدوت نت. في الدروس القادمة نتعلم كيفية حذف مستخدم مسجل وأيضا كيفية التعامل مع الأدوار والصلاحيات للمستخدمين.

ماذا بعد

من هذه السلسلة:

مواضيع مشابهة:

اخترنا لك:

أحدث المواضيع:

هل أعجبتك؟ شارك بها...