پشتیبانی: 09131253620
ارتباط با ما
تلگرام: 09131253620


یکی دیگر از خدمات ما طراحی وب سایتهای واکنشگرا یا Responsive با کیفیت بالا می باشد. برای طراحی این وب سایتها از تکنولوژیهای روز دنیا استفاده می شود.


       
صفحه اصلی  |  فروشگاه ما  |  نرم افزار مدیریت برنامه غذایی رستوران ها  |  seo تضمینی اصفهان  |  ثبت نام  |  طراحی وب سایت در اصفهان  |  برنامه نویسی اصفهان  |  انجام پروژه های پایگاه داده SQL Server  |  انجام پروژه مهندسی نرم افزار  |  انجام پروژه های مالتی مدیا بیلدر  |  در مورد ما  |  انجام پروژه های اکسس Microsoft access  |  نمونه پروژه ها  |  ارتباط با ما  |  اخبار و مقاله  |  انجمن رفع اشکالات مشتریان
برجسته ترین ها
گروه های مقاله ها
HyperLink


بررسی اصول امنیتی پایگاه های داده بخش بیست و یکم تاریخ درج: ١٣٩۵/٠۴/٢٠

ایجاد کاربر در سطح پایگاه داده  

شکل 5-2 : ایجاد کاربر در سطح پایگاه‌داده
3. کاربر موجود در پایگاه‌داده master باید اجازۀ اجرای sp_setapprole را داشته باشد و از دسترسی به سایر منابع باید محروم باشد. برای انجام این کار بر روی کاربر Login1 کلیک راست کرده و Properties را انتخاب کنید(شکل 5-3).
 اجازه اجرای sp_setapprole به کاربرlogin اعطا شد
شکل 5-3 : اجازه اجرای sp_setapprole به کاربر Login1 اعطا شده است
4. برنامه رویۀ ذخیره شدۀ sp_setapprole را اجرا می‌کند. این رویه نام و کلمه رمز APR را از فرم ورود دریافت می‌کند(شکل 5-4). 
 دریافت نامAPRو کلمه رمز
شکل 5-4 : در یافت نام APR و کلمه رمز
کد‌های زیر به زبان برنامه نویسی C# بوده و برای اجرای sp_setapprole است.
public partial class frm_begin : Form
    {
        public static SqlConnection con;
        public SqlCommand cmd_SP;
        public frm_begin()
        {
            String s = "Data Source=y;Initial Catalog=db_systemactivity;Integrated Security=True";
            String s1 = "Data Source=y;Initial Catalog=db_systemactivity;User ID=u;Password='1';Network Library=dbmslpcn";
            con = new SqlConnection(s1);
            InitializeComponent();
        }
//**************************************************************
        private void btn_ok_Click(object sender, EventArgs e)
        {
                cmd_SP = con.CreateCommand();
                cmd_SP.CommandType = CommandType.StoredProcedure;
                cmd_SP.CommandText = "sp_setapprole";
                cmd_SP.Parameters.Add("@rolename", SqlDbType.NVarChar).Value = txt_username.Text;
                cmd_SP.Parameters.Add("@password", SqlDbType.NVarChar).Value = txt_password.Text;
                con.Open();
                cmd_SP.ExecuteNonQuery();
                s1 = true;               
                //con.Close();
         }

دقت کنید که SqlConnection بصورت static تعریف شده است علت این امر این است که Connection مورد نظر(con) تحت کنترل یکی از APR های معتبر در سطح پایگاه داده در آمده است و حوزۀ عملیاتی این Connection معادل حوزۀ عملیاتی APR است. حال فرض کنید فرمی دارید که مشخصات پرسنل یک شرکت را ثبت می‌کند. این فرم یا باید یک Connection جدید بسازد و یا باید از Connection این کلاس frm_begin استفاده کند. اگر قرار باشد تا برای این فرم یک Connection جدید ساخته شود دوباره باید از UserName و Password از کاربر درخواست شود(اگر تعداد فرم‌ها زیاد باشد این عمل بسیار وقت گیر است) و یا اینکه UserName و Password از کلاس frm_begin به کلاس جاری منتقل شود. این انتقال می‌تواند بسیار مهلک باشد و انتقال این اطلاعات در سطح فرم‌ها از لحاظ امنیتی مناسب نیست. بهترین روش استفاده از Connection موجود در کلاس frm_begin است. راه‌های متفاوتی برای انجام این کار وجود دارد که یکی از آنها تعریف Connection بصورت static است. به این نکته نیز توجه شود که این Connection نباید تا پایان کار کاربر بسته شود و لزومی به اجرای دستور con.Close() نیست.
5. در صورتی که این نام و کلمه رمز معتبر باشد ، APR مورد نظر فعال می‌شود.
6. در این لحظه ارتباط کاربر عادی قطع شده و برنامه با سطح دسترسی APR به SQLServer وصل می‌شود. پس از اجرای این رویه ، connection برنامه تحت کنترل نقش مورد نظر قرار می‌گیرد بدین معنی که اگر بر فرض مثال نقش برنامه‌ای مجاز به دسترسی به جدول tbl1 نباشد ، پس از اجرای sp_setapprole ، این connection نیز حق دسترسی به این جدول را ندارد.
 

تگها: اصول امنیتی database   امنیت پایگاه داده   امنیت در SQL Server   امنیت دیتابیس   در یافت نام APR و کلمه رمز   
 

HyperLink

ارسال نظر در مورد این مطلب
نام :  
آدرس ایمیل :  
متن پیام :  
کد امنیتی :  
   
   
نظری برای نمایش وجود ندارد
 
این مطلب را به اشتراک بگذارید: