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

برجسته ترین ها
گروه های مقاله ها
HyperLink


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

 5-4  معرفی فرم پرسنل 

این فرم مشخصات پرسنل را دریافت کرده و اعمال select,updatet,delete,insert را انجام می‌دهد(شکل5-5).
 فرم پرسنل
شکل 5-5 فرم پرسنل
تمامی اعمال یاد شده بجز delete با استفاده از store procedure انجام شده است. این رویه‌ها از تهاجم‌ها در امان هستند. در سطح SQLServer  مدیر SQLServer با تعریف دقیق نقش‌ها و کاربران پایگاه داده این کار را انجام داده است. ممکن است مدیر به کاربری دسترسی به این منابع را داده باشد و کاربری دیگر را از این دسترسی‌ها محروم کرده باشد. با این کار افرادی که مستقیما و بدون واسط به SQLServer وصل می‌شوند تنها در صورتی می‌توانند به منابع دسترسی داشته باشند که مدیر آن دسترسی‌ها را مجاز شمارد و اگر فردی بخواهد از طریق برنامه به منابع دسترسی داشته باشد باز هم مدیر با تعریف نقش‌های برنامه‌ای این دسترسی را محدود می‌کند. به طریقۀ استفاده از Connection در این فرم توجه شود. این Connection بصورت frm_begin.con فراخوانی شده است. علت این امر این است که con از نوع stastic تعریف شده است و برای دسترسی به منابع static در زبان برنامه نویسی C# باید نگارش  calssName.Object استفاده شود.در ذیل کدهای این فرم را که بزبان C# است را مشاهده می‌کنید.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace PersonalSystem
{
    public partial class frm_person : UserControl , Icommand 
    {
        private frm_person frmperson;
        private SqlCommand cmd_insert;
        private SqlCommand cmd_select;
        private SqlCommand cmd_update;
        private SqlCommand cmd_delete;
        private SqlCommand cmd_SP;
        private SqlDataAdapter da;
        private DataTable dt;
        public frm_person()
        {
            da = new SqlDataAdapter();
            dt = new DataTable();
            cmd_insert = frm_begin.con.CreateCommand();
            
            InitializeComponent();
        }
//****************************************************
        public void insert(String spName)
        {
            try
            {
                cmd_insert = frm_begin.con.CreateCommand();
                cmd_insert.CommandType = CommandType.StoredProcedure;
                cmd_insert.CommandText = spName;
                cmd_insert.Parameters.Add("@Id", SqlDbType.Text).Value = txt_id.Text;
                cmd_insert.Parameters.Add("@fname", SqlDbType.VarChar).Value = txt_fname.Text;
                cmd_insert.Parameters.Add("@lname", SqlDbType.VarChar).Value = txt_lname.Text;
                cmd_insert.Parameters.Add("@mobile", SqlDbType.VarChar).Value = txt_mob.Text;
                cmd_insert.Parameters.Add("@field", SqlDbType.VarChar).Value = combo_field.Text;
                cmd_insert.Parameters.Add("@position", SqlDbType.VarChar).Value = combo_position.Text;
                cmd_insert.Parameters.Add("@madrak", SqlDbType.VarChar).Value = combo_madrak.Text;
                cmd_insert.Parameters.Add("@address", SqlDbType.VarChar).Value = txt_add.Text;
                cmd_insert.Parameters.Add("@email", SqlDbType.VarChar).Value = txt_email.Text;
            
                cmd_insert.ExecuteNonQuery();
            }
            catch(Exception ex)
            {
                if (ex.Message.Contains("EXECUTE permission denied on object 'sp_insert', database 'db_systemactivity', schema 'dbo'.")) 
                    MessageBox.Show("شما مجاز به وارد کردن اطلاعات در پایگاه داده نیستید. برای اطلاعات بیشتر با مدیر پایگاه داده تماس بگیرید.", "خطا",
                            MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        public void SaveItem()
        {

            insert("sp_insert");
            MessageBox.Show(".عمل ذخیره سازی انجام شد", "پیام",
                            MessageBoxButtons.OK, MessageBoxIcon.Information);



           // String s = "insert into tbl_person (Id,fname,lname,mobile,field,position,madrak,address,email) values (EncryptByCert(Cert_ID('c1'),'" + txt_id.Text + "'),'" + txt_fname.Text + "','" + txt_lname.Text + "','" + txt_mob.Text + "','" + combo_field.Text + "','" + combo_position.Text + "','" + combo_madrak.Text + "','" + txt_add.Text + "','" + txt_email.Text + "')";
           // cmd_insert = new SqlCommand(s, frm_begin.con);
           // //frm_begin.con.Open();
           // cmd_insert.ExecuteNonQuery();
           // MessageBox.Show("عمل ذخیره سازی انجام شد");
           //// frm_begin.con.Close();

        }   
//****************************************************
        public void DeleteItem()
        {
            try
            {
                string slct;
                slct = " DELETE FROM tbl_person WHERE lname = '" + txt_lname.Text + "'";
                cmd_delete = new SqlCommand(slct, frm_begin.con);
                cmd_delete.ExecuteNonQuery();
                MessageBox.Show("عمل حذف انجام شد", "پیام",
                            MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex) 
            {
                if (ex.Message.Contains("DELETE permission denied on object 'tbl_person', database 'db_systemactivity', schema 'dbo'."))
                    MessageBox.Show("شما مجاز به حذف اطلاعات از پایگاه داده نمی باشید. برای کسب اطلاعات بیشتر با مدیر پایگاه داده تماس بگیرید.", "خطا",
                            MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
//****************************************************
        public void select(String spName)
        {
            try
            {
                cmd_select.CommandType = CommandType.StoredProcedure;
                cmd_select.CommandText = spName;
                cmd_select.ExecuteNonQuery();
                da.SelectCommand = cmd_select;
                da.Fill(dt);
                dataGridView1.DataSource = dt;
                dataGridView1.Columns[0].HeaderText = "شماره پرسنلی";
                dataGridView1.Columns[0].Width = 120;
                dataGridView1.Columns[1].HeaderText = "نام";
                dataGridView1.Columns[1].Width = 110;
                dataGridView1.Columns[2].HeaderText = "نام خانوادگی";
                dataGridView1.Columns[2].Width = 110;
                dataGridView1.Columns[3].HeaderText = "تلفن همراه";
                dataGridView1.Columns[3].Width = 110;
                dataGridView1.Columns[4].HeaderText = "رشته";
                dataGridView1.Columns[5].HeaderText = "سمت";
                dataGridView1.Columns[6].HeaderText = "مدرک";
                dataGridView1.Columns[7].HeaderText = "آدرس";
                dataGridView1.Columns[7].Width = 200;
                dataGridView1.Columns[8].HeaderText = "پست الکترونیکی";
                dataGridView1.Columns[8].Width = 200;
            }
            catch (Exception ex)
            {
                if (ex.Message.Contains("EXECUTE permission denied on object 'sp_select', database 'db_systemactivity', schema 'dbo'."))
                {
                    MessageBox.Show("شما اقدام به مشاهده داده های غیر مجاز کرده اید. انجام چنین عملی از سمت پایگاه داده محدود شده است", "خطا",
                            MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
        public void SearchItem()
        {

            cmd_select = frm_begin.con.CreateCommand();
            dt.Clear();
            if (txt_pass.Text != "")
            {
                cmd_select.Parameters.Add("@pass", SqlDbType.NVarChar).Value = txt_pass.Text;
                select("sp_select");
            }
            else 
            {
                select("sp_select1");
            }
        }
//****************************************************
    }
}
 

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

HyperLink

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