您的位置:首页 > 数据库

数据库安全性之使用命令来实现用户管理以及角色.十五

2009-12-26 17:43 731 查看
例[/b]1[/b].创建[/b]windows[/b]登录[/b]shuai[/b]用户,只能查看[/b]itet[/b]库中[/b]yuangong[/b]表的数据。[/b][/b]
步骤一.在windows中创建用户shuai.



步骤二.创建登录。
语法为:create login 登录名 from windows
注意:[/b][机器名\用户名] 只限于windows登录



步骤三.成为指定的数据库的合法用户。
语法为:
Create user 用户名昵称 for login 登录名



4.分配权限。
语法为:
Grant 权限 on 对象名 to 用户



测试在这里就不需要注销了,使用名令setuser
语法为:setuser ‘用户名’



我们怎么知道登没登录呢?这怎么办呀,有一个命令可以查看当前是那个用户登录的。 Select user



用户权限分配成功。



切回管理员只使用setuser就可以了。



例[/b]2[/b].创建[/b]sql server[/b]登录。用户为[/b]juan[/b]。[/b]
1. 创建sql登录。
Create login 登录名 with password=‘登录口令’



2.成为指定数据库的合法用户。
Create user 用户名昵称 for login 登录名



3.分配权限。能删除yuangong表的记录。
Grant 权限 on 对象名 to 用户名



测试用户juan登录数据库,进行删除yuangong表记录的操作,如下图所示成功删除了记录。



例:创建[/b]sql server[/b]登录:[/b]text[/b]只能修改[/b]yuangong[/b]表女同志的信息。[/b][/b]
1.创建sql登录。
Create login 登录名 with password=‘登录口令’



2.成为指定数据库的合法用户。
Create user 用户名昵称 for login 登录名



3.创建视图。
语法为:create view 视图名
As
Select * from yuangong where 性别=‘女’



4.分配相应的权限。
Grant 权限 on 视图名 to 用户名



测试用用户text登录数据库,将所有女同志的年龄减去1岁。



修改后的情况。



一.撤销用户权限。[/b][/b]
语法为:
Revoke 权限 on 对象名 from 用户名
例[/b]1.[/b]撤销[/b]text[/b]用户对[/b]viewnv[/b]视图的[/b]update[/b]权限。[/b][/b]



测试…



二.删除用户[/b][/b]
Drop user 用户名



三.删除登录名。[/b][/b]
Drop login 登录名



四.角色:[/b]role[/b]。[/b] [/b]下面的例子就要用到角色了。[/b][/b]
角色的功能同[/b]windows[/b]中的组相同。[/b][/b]
例:现有10个sql登录,都是只能查看yuangong表的数据。
1. 创建角色。
Create role 名



2. 加入用户。
Sp_addrolemember ‘角色名’,‘用户名’
一条一条的执行,



4.给角色分配权限。
Grant 权限 on 对象名 to 角色名



测试分别使用用户s1,s2,s3,s4,S5登录,在这里我就用s1登录看操作是否成功。如下图所示只有查看的权限。



5.撤销角色的权限。
Revoke 权限 on 对象名 from 角色名
在这条命令里[/b]from[/b]和[/b]to[/b]都可以用。[/b][/b]



如下图所示角色里的查看权限以撤销,用s5登录测试。



6.删除角色中的成员。
Sp_addrolemember ‘角色名’,‘用户名’
例删除[/b]network[/b]角色中的[/b]s1[/b]用户。[/b][/b]



7.删除角色。
Drop role 角色名
例删除角色network,角色空时才能删除。



Sql server 2005对于用户安全的新特性
1. 复杂性口令
2. 锁定策略
3. 架构
([/b]1.[/b])通过组策略实现复杂性口令。[/b][/b]
在运行里输入gpedit.msc打开组策略在windows设置→安全设置→账户策略→密码策略→启动密码必须符合复杂性要求。





设置密码最小值为7



([/b]2.[/b])例:[/b]juan[/b]用户只允许登录[/b]3[/b]次,[/b]3[/b]次登录无效后锁定。[/b][/b]
在运行里输入gpedit.msc打开组策略在windows设置→安全设置→账户策略→账户锁定策略



锁定时间为30分钟。



测试用户juan三次登录错误后,账户被锁定。



如下图在用户名属性里状态中,登录已锁定。



解锁:[/b][/b]
Alter login 用户名 with password=‘用户名密码’unlock



如下图已解锁。



([/b]3.[/b])架构:[/b]schema[/b]
Sql 2000以前的版本中描述对象为:
服务器名.数据库名.用户名.对象名
2005版本
服务器名.数据库名.架构名.对象名
注意:[/b][/b]
1. 架构和用户没有从属关系。
2. 创建对象时,最好指定所属架构。
3. 如果某个对象不指定所属架构,则默认属于dbo架构。
4. 操作a.b对象,首先查看a架构,如果找不到再找dbo架构。
创建架构:[/b][/b]
语法为:
Create schema 架构名
Create table 表名

Id int,
Uname varchar(8),
Sex char(2)




给架构分配一个查看权限。
Grant 权限 on schema ::架构名 to 用户名



测试查看t2表。只是里面没有放入记录。



更改用户的架构。
Alter user juan with default_schema=network
例[/b]1.[/b]将[/b]t2[/b]表的架构从[/b]network[/b]改为[/b]sales[/b]
先创建架构sales,然后在进行更改。
Create schema sales
Alter schema sales transfer network.t2



如下图所示架构更改成功。



例[/b]2.[/b]更改用户的架构。把[/b]juan[/b]用户的架构改为[/b]sales[/b]。[/b][/b]
Alter user 用户名 with default_schema=架构名


本文出自 “帅帅” 博客,转载请与作者联系!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐