SQL Server2014创建新用户以及为此用户创建角色或直接授予权限
2016-06-14 21:36
393 查看
相信有很多人和我一样在用SQL Server2014 时会有些许疑惑,但是又由于版本问题网上解决问题的资源较少。因此下面我就为同学们介绍一下我在学习过程中遇到的问题以及解决办法。
一.为数据库建立新的用户以及授予相应权限。
1.首先在打开数据库后使用windows身份验证登陆。之后在安全性选项卡内右键点击登录名选择新建登录名。
2.在之后出现的页面中 选择SQL Server身份验证 --->填写登录名(即是所建立的用户名)和密码-->选择默认数据库(如果是建立好的数据库选择即可,如果没有只要选择master就行,这里是我选择的是我建好的CampusCard数据库)
3.配置服务器角色:
4.配置用户映射(选择自己选择的默认数据库,此为CampusCard)
5.状态选择,分别选择(授予与已启用)点击确认即可。
6.在红色方框处右键点击选择属性
7.在得到的界面上选择安全性选项卡。--》选择用windows和SQL Server身份验证。(较为关键,不进行设置会出现错误)点击确定即可
8.在红色方框处右键点击选择重新启动 此用户就已经创建成功了(此步骤最为关键)
此用户现在也就建好了。
几点问题:
在用用户登录时会产生常见问题:
1、如果在 步骤3 常规 选项卡中勾选了 强制实施密码策略,则会出现 15128 错误
此时需要以 Windows身份认证方式 登录后 执行如下语句
AlTER LOGIN testUser WITH PASSWORD = '新密码' [sql] view
plain copyAlTER LOGIN testUser WITH PASSWORD = '新密码' AlTER LOGIN testUser WITH PASSWORD = '新密码' AlTER LOGIN testUser WITH PASSWORD = '新密码'
并选择使用SQL Server身份验证和Windows身份验证。
2、如果在 步骤4用户映射 选项卡中没有将该用户映射到相应的数据库,则即使在 常规 选项卡中指定了 默认数据库,该用户也不能正常登陆了,此时报错 4064,相当于没有将此数据库映射到外模式上导致无法访问。
3、如果在 步骤7 中没有指定 服务器身份验证 方式,则登录时会出现 18456 的错误
此时先用Windows身份验证登录,之后再选择使用SQL Server身份验证和Windows身份验证。
若还没有用就重复步骤8,重新启动服务。
二.对创建的用户进行授权。
第一种方法:
1.在红色方框处右键点击选择属性
2.在出现的页面中选择权限选项卡。选择刚创建的用户,进行授权(根据需要)点击确认即可。
第二种方法:
1.运用sql语句进行授权,在所建的数据库中选择新建查询
输入以下语句:
GRANT <权限>{,<权限>}.........
ON<对象类型> <对象名>{,<对象类型>}.......
TO <用户>{,<用户>}........
就是这种形式的语句。
例如:
撤销权限与以上原理一样
SQL语句:
REVOKE <权限>{,<权限>}....
ON <对象类型> <对象名>......
FROM <用户>{,<用户>}。。。{CASCADE|RESTRICT}
{CASCADE|RESTRICT},这里只是进行级联操作。
说到这大家应该对授予权限创建用户有了解了。
但是在数据库的设计中往往会出现对某些表的一些权需要反复使用,或者需要为某一用户设置多种权限,这事可以创建角色来管理一项或一组权限,下面就为大家介绍角色创建与使用。
运用SQL语句
CREATE ROLE<角色名>
这样角色名就建好了。
建好之后要对其使用,使用以下语法,
GRANT <权限>{,<权限>}。。。
ON <对象类型> 对象名
TO<角色>{,<角色>}。。。。。
已经为角色授予了权限。
GRANT <角色1>{,<角色2>}.....
TO <角色3>{,<用户1>}....(既可以是角色,也可以是用户) {WITH ADMIN OPTION}有了这一句就说明此用户或角色还可以将被授予的权限授予给其他用户或角色
角色权限收回
8541
:
REVOKE <权限>{,<权限>}....
ON <对象类型> <对象名>......
FROM <角色>{,<角色>}。。。
例子:
创建一个角色 R1
CREATE ROLE R1;
然后为这个角色授权
GRANT SELECT, UPDATE,INSERT
ON TABLE Student
TO R1
将角色授予其他用户(U1,U2)
GRANT R1
TO U1,U2 也可以一次性通过R1收回权限
REVOKE R1
FROM U1; 这样就完成了所有基本操作
希望对你有帮助,有什么不足也可以提出,谢谢!
参考文件:http://blog.csdn.net/zhouquan2009/article/details/7010387
相关文章推荐
- Memcached - In Action
- Memcached - In Action
- Memcached - In Action
- 数据库复习②
- mysql 配置相关的变量
- 玩转mongodb(八):分布式计算--MapReduce
- Oracle SQL Developer 连接 MySQL
- jsp重定向,数据库语言在jsp中的实现
- centos redis
- SQL技巧之分类汇总
- Oracle heap 表的主键 dump 分析
- Oracle heap 表的主键 dump 分析
- MySQL垂直分割示例
- 数据库中GETDATE()函数格式化时间
- 用oracle安装包自带的unzip文件 解压oracle的zip安装包
- MySql的安装和使用
- 设置mysql允许外网访问
- FreeRADIUS + MySQL 安装配置笔记
- mysql启动问题access denied for user 'root'@'localhost'(using password:YES)
- MYSQL企业常用架构与调优经验分享