SQL Server 2008 登陆名和用户创建和切换
本文解决下面问题:
1. 创建一个架构“class”,“class”架构下有两张表student和teacher。
2. 创建4个用户,分别是:stu1,stu2,tea1,tea2。其中stu1和tea1用windows身份登录,stu2和tea2用SQL 身份验证登录。
3. 创建两个角色:student、teacher。student拥有查看student表的权限,teacher拥有查看teacher表的权限。
4. 将student角色授予给stu1和stu2用户,teacher角色授予给tea1和tea2用户。
建议先看一下登录名、角色、用户的关系:http://wenku.baidu.com/view/75a1b746a8956bec0975e358.html
1 创建架构(schema)
1 use [S-T] 2 go 3 4 create schema class 5 go
和表格
1 use [S-T] 2 go 3 4 create table class.student( 5 Sno char(10), 6 Sname char(10), 7 Ssex char(4), 8 Sdept char(10) 9 ); 10 go 11 12 create table class.teacher( 13 Tno char(10), 14 Tname char(10), 15 Tsex char(4), 16 Tdept char(10), 17 Job char(10), 18 Sal smallint 19 ); 20 go 21
这是执行上述语句后的情况
2-1 接下来要建新的登录名
登录名有两种 一个是Windows 另一个事Sql 验证的 前者的安全性比较好
创建Windows验证的有一个重要的前提:这个登录名必须在你的电脑里存在
所以要创建一个名为stu1的Windows验证的登录名必须先现在电脑上创建一个名为stu1的账号(从控制面板那边建)
假设已经有stu1的账号了 运行下面的代码:
1 use master 2 go 3 4 create login [XIAOMENGGE\stu1] from windows 5 with default_database= "S-T" 6 go
运行完后你可以在安全性的登录名中发现多了一个XIANGMENGGE\stu1的登录名(前半部分是计算机的名称,后半部分是用户名)
tea1的建立方法同上。
接下来我们建立Sql验证的用户名stu2和tea2
1 use master 2 go 3 4 create login stu2 5 with password ='123456', 6 default_database = "S-T" 7 go
同样可以在安全性\登录名那里看到多了一个stu2的用户名
2-2 下面验证一下我们是否可以使用这些登录名
首先先断开连接(如果原来有连接的话)
重新登录(随便哪一个原有的登录名)
执行下面代码
1 use master 2 execute as login='XIAOMENGGE\stu1' 3 go 4 5 DECLARE @sys_usr char(30); 6 SET @sys_usr = SYSTEM_USER; 7 SELECT @sys_usr; 8 GO
这段代码的上半部分是吧登录名换成stu1 下部分是输出登录名
但是这事实上是没什么用的, 这时的XIAOMENGGE\stu1是无法对除了master的其他数据库进行操作的
(你断开连接再重新连接,选用Windows验证时登陆名只有一个,就是你当前PC登陆的账号)
所以如果我们要用stu1进行登陆,应该注销电脑,并切换账户到stu1
然而相对Windows验证,Sql验证的登录名登陆就比较简单了
断开连接,选Sql验证,输入登录名和密码即可
(如果是该登陆名的第一次登陆,要先运行下列代码)
1 grant control server to MyLogin 2 go
posted on 2012-04-24 20:08 xiaoniuzzm 阅读(3337) 评论(0) 收藏 举报
浙公网安备 33010602011771号