一、实验名称和性质
所属课程 | C#数据库系统设计 |
实验名称 | 数据库安全性控制与Connection连接 |
实验学时 | 2 |
实验性质 | ✓□验证 □综合 ✓□设计 |
必做/选做 | ✓□必做 □选做 |
二、实验目的
1. 了解SQL Server2008的安全性控制框架。
2. 掌握数据库服务器的登录控制。
3. 掌握数据库的登录控制
4. 理解数据库对象的权限控制。
三、实验的软硬件环境要求
硬件环境要求:
PC机(单机)
使用的软件名称、版本号以及模块:
Windows XP下的SQL Server 2005(或 SQL Server 2008)
四、知识准备
1、打开 SQL Server Management Studio,以 Windows身份认证方式登录
2、在对象资源管理器下,右键Security ==> Logins ==> New Login
3、打开 新建登录名 对话框后,常规 右侧输入相应的登录名、密码和默认数据
用户映射选项卡下
输入完成后确认
4、对象资源管理器 下,右键 实例名称(不知道这么叫对不对),下图中蓝色背景的部分 ==> Properties
5、重启 SQL Server 服务
(二)Connection对象
Connection对象是开启程序和数据库之间的连结。不利用连结对象将数据库打开,是无法从数据库中取得数据的。在ADO.NET的最底层
1. SqlConnection连接
using System.Data.SqlClient;//要加载的数据包
String connString;
// connString= @"Data Source=LENOVO-PC;Initial Catalog=Northwind;Integrated Security=True"; //Windows身¦¨ª份¤Y认¨?证¡è
connString = @"Data Source=localhost;Database=Northwind;PWD='123456';UID='sa'"; //SQL Server身¦¨ª份¤Y认¨?证¡è,本À?机¨²可¨¦以°?用®?网ª?址¡¤、¡élocalhost或¨°者?是º?计?算?机¨²名?
SqlConnection conn = newSqlConnection(connString);
try
{
conn.Open();
txtDisplay.Text = "Connection opened:"+"\r\n";
txtDisplay.Text += "Database:"+ conn.Database.ToString()+"\r\n";
txtDisplay.Text += "DataSource:"+ conn.DataSource.ToString () + "\r\n";
txtDisplay.Text += "ServerVersion:"+ conn.ServerVersion .ToString ()+ "\r\n";
txtDisplay.Text += "State:"+ conn.State .ToString () + "\r\n";
txtDisplay.Text += "WorkStationID:"+ conn.WorkstationId .ToString () + "\r\n";
}
catch(SqlExceptionex)
{
MessageBox.Show("ErrorCode:" + ex.ErrorCode + " Error Message:" + ex.Message);
}
finally
{
conn.Close();
txtDisplay .Text+= "Connection Closed.";
}
2.OleDbConnection代码样例
usingSystem.Data.OleDb;//要在加载的数据包
string connString;
connString = @"Provider=Microsoft.ACE.OLEDB.12.0;"+ "Data Source='testData.xlsx';" +"Extended Properties='Excel 12.0;HDR=YES;Imex=1;'";
OleDbConnection conn = newOleDbConnection(connString );
try
{
conn.Open();
txtDisplay.Text = "Connection opened:" + "\r\n";
txtDisplay.Text += "Database:"+ conn.Database.ToString() + "\r\n";
txtDisplay.Text += "DataSource:"+ conn.DataSource.ToString() + "\r\n";
txtDisplay.Text += "ServerVersion:"+ conn.ServerVersion.ToString() + "\r\n";
txtDisplay.Text += "State:"+ conn.State.ToString() + "\r\n";
OleDbCommand odComm = new OleDbCommand("Select * from [Sheet1$]",conn);
OleDbDataAdapter odAdapter1 = new OleDbDataAdapter();
odAdapter1.SelectCommand = odComm ;
DataSet odDataset1 = new DataSet();
//将?Excel中D数ºy据Y填¬?充?到Ì?数ºy据Y集¡¥
odAdapter1.Fill(odDataset1, "XLData");
MessageBox.Show(odDataset1.Tables.Count.ToString());
dataGridView1.DataSource = odDataset1.Tables[0];
}
catch(SqlException ex)
{
MessageBox.Show("ErrorCode:" + ex.ErrorCode + " Error Message:" + ex.Message);
}
finally
{
conn.Close();
txtDisplay.Text += "Connection Closed.";
}
五、实验内容
1.在服务器级别上创建三个以SQL Server身份验证的登录名,登录名称自定。分别为三个登录名在“Student”数据库映射三个数据库用户,数据库用户名为Tom,Mary和John,使这三个登录名可以访问“Student”数据库。
2.完成以下授权:(1)把对表S的INSERT权力授予用户Tom,并允许他再将此权限授予其他用户。(2)用户Mary对S,C,SC三个表有SELECT和INSERT权力 (3)用户Tom对SC表有DELETE权力.(4)把对用户Tom授予的所有权力收回。
3.两个同学为一组(自由搭配),在自己的数据库服务器上分别为对方创建一个登录名,并授予创建数据库的权力,然后用对方为自己创建的登录名和对方的数据库服务器建立连接,进行登录,并创建一个TEST数据库。
4. 分别以Windows身份、sa和Mary账号连接数据库Student,建立SqlConnetion连接。
六、实验报告
针对每个实验写出操作步骤和结果。