SQLSever

Stella981
• 阅读 552

如题,本文简记一下SQL Sever里面登录用户(login)的创建,数据库用户(DBUser)的创建,以及给数据库用户分配权限(Grant)。

数据库有三层保护机制:

第一层:登录用户以及登录密码的保护,比如:你拥有进去小区大门的权限;

第二层:数据库的权限,比如:小区有很多楼栋,你只拥有进去指定楼栋的权限;

第三层:数据库操作的权限,比如:你进了指定的楼栋之后,只能做被允许的事情。

第一层里面,用户登录分为windows登录与SQLSever登录,windows登录不说,主要说SQLSever登录。

SQLSever

--第一层:登录用户创建--可以进小区了
use master
go
exec sp_addlogin 'test','123456'
--exec sp_droplogin 'test'  --删除登录用户
--第二层:数据库用户创建--可以进房子了
use TSMS
go
exec sp_grantdbaccess 'test','testUser01'
--exec sp_dropuser 'testUser01' --删除数据库用户
--第三层:权限分配--可以在房子里干一些已被许可的事情了
use TSMS
go
grant select on Students to testUser01
--revoke select on Students to testUser01  --权限收回

SQLSever

ok,现在知道如何创建与删除登录用户、数据库用户、数据库权限了。继续补充一点东西,一个登录用户如果需要取得多个DB的操作权限,就需要创建多个DBUser,简单说:一个login可以拥有多个DBUser,每个DBUser对应一个DB。这就可以解释,在sa账号下,为什么每个数据库都有一个dbo(DB Owner)了,这样sa账号就可以操作所有数据库啦!

指定DB→安全性→查看用户

继续引入问题:如果登录用户超级多,难道要一个一个来给他们赋予权限?那太挫了!SQLSever定义了一组用户角色来解决这些问题,如下:

SQLSever

角色赋予与删除:

SQLSever

SQLSever

代码示例:

--用户角色管理
use TSMS
go
exec sp_addrolemember 'db_owner','testUser01' --赋予db_owner权限
exec sp_droprolemember 'db_owner','testUser01' --删除db_owner权限
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
MySQL.授权管理
查看权限:showgrantsfor'用户’@‘IP地址’  授权:grant权限on数据库.表to‘用户’@‘IP地址’取消权限:revoke权限on数据库.表from‘用户’@‘IP地址’常用权限:allprivileges除grant外的所有权限     select  仅查权限     select,i
Wesley13 Wesley13
3年前
MySql创建新用户
1.创建数据库:createdatabasephonedefaultcharsetutf8;2.创建数据库用户创建用户账号:qingkong,密码:mysqlcreateuserqingkongidentifiedby"mysql"phone库的所有权限(all)给用户qingkong在
Wesley13 Wesley13
3年前
mysql之grant权限说明
mysql中给一个用户授权如select,insert,update,delete等其中的一个或者多个权限,主要使用grant命令,格式为:给没有用户授权grant权限on数据库对象to'用户'@'主机IP'identifiedby'密码';给已经存在的用户授权grant权限on数据库对象to'用户'@'主机IP';
Wesley13 Wesley13
3年前
mysql用户
1\.学会能按着需求创建一个帐号2\.知道连接字符串是什么样3\.密码密码怎么恢复mysql用户权限介绍mysql用户管理 !(https://oscimg.oschina.net/oscnet/368d3c1e00a0a9515545c2962660a27a080.png)!(https://oscimg.oschin
Stella981 Stella981
3年前
Linux(Centos)给MySQL创建用户,并分配权限
//登录MYSQL使用root账号登录mysqlurootp密码 密码//创建用户(%表示可以远程登录该数据库)mysqlcreateuser's_root'@'%'identifiedby'123456';//刷新系统权限表用户授权格式:grant权限on
Easter79 Easter79
3年前
SQLSever
如题,本文简记一下SQLSever里面登录用户(login)的创建,数据库用户(DBUser)的创建,以及给数据库用户分配权限(Grant)。数据库有三层保护机制:第一层:登录用户以及登录密码的保护,比如:你拥有进去小区大门的权限;第二层:数据库的权限,比如:小区有很多楼栋,你只拥有进去指定楼栋的权限;第三层:数据库操作的权限,比如:你进了
Stella981 Stella981
3年前
PostgreSQL学习手册(十) 角色和权限
 PostgreSQL是通过角色来管理数据库访问权限的,我们可以将一个角色看成是一个数据库用户,或者一组数据库用户。角色可以拥有数据库对象,如表、索引,也可以把这些对象上的权限赋予其它角色,以控制哪些用户对哪些对象拥有哪些权限。    一、数据库角色:   1\.创建角色:   CREATEROLE
Wesley13 Wesley13
3年前
mysql数据库,创建只读用户
数据库当前只有一个root用户,需要创建一个只读帐户给其他使用,因使用者是使用数据库管理工具在其他主机访问,所以还要开户远程访问权限,操作步骤如下。1\.使用现有的root用户登录到Mysql。mysqlurootp2. 创建用户,并授权SELECT查询权限,授权远程访问权限,注意,命令中username/password指用户