创建登陆
添加Windows登陆账户
exec sp_grantlogin 'yuming\zhangbo' --域名(电脑名)\用户名 grant /ɡrɑːnt/ 授权
添加sql登陆账户
exec sp_addlogin 'zhangsan','123' --用户名,密码
exec 表示调用存储过程,存储过程类似C语言的函数
内置的系统管理员账户sa密码默认为空,建议修改密码
创建数据库用户
创建数据库用户需要调用系统存储过程
exec sp_grantdbaccess '登录账户名','数据库用户名'
其中,“数据库用户名”为可选参数,默认为登陆账户,即数据库用户名默认和登陆账户同名。
use studb
go
exec sp_grantdbaccess
'yuming\lisi','lisiDBuser'
exec sp_grantdbaccess
'yuming\wangwu','wangwuDBuser'
--在studb库中添加了两个用户
创建数据库用户需要调用系统存储过程
exec sp_grantdbaccess '登录账户名','数据库用户名'
其中,“数据库用户名”为可选参数,默认为登陆账户,即数据库用户名默认和登陆账户同名。
use studb
go
exec sp_grantdbaccess
'yuming\lisi','lisiDBuser'
exec sp_grantdbaccess
'yuming\wangwu','wangwuDBuser'
--在studb库中添加了两个用户
系统内置的数据库用户
dbo 用户
表示数据库的拥有者(DB Owner)
无法删除 dbo 用户,此用户始终出现在每个数据库中
guest 用户
适用于没有数据库用户的登陆账号访问
每个数据库可有也可禁用
dbo 用户
表示数据库的拥有者(DB Owner)
无法删除 dbo 用户,此用户始终出现在每个数据库中
guest 用户
适用于没有数据库用户的登陆账号访问
每个数据库可有也可禁用
向数据库用户授权
授权的语法:
grant 权限 [on 表名] to 数据库用户
use stuDB
go
--为zhangsanDBUser分配对表stuInfo的select,insert,update权限
grant select,insert,update
on stuInfo to zhangsanDBUser
--为lisiDBUser分配建表的权限
grant create table to lisiDBuser
授权的语法:
grant 权限 [on 表名] to 数据库用户
use stuDB
go
--为zhangsanDBUser分配对表stuInfo的select,insert,update权限
grant select,insert,update
on stuInfo to zhangsanDBUser
--为lisiDBUser分配建表的权限
grant create table to lisiDBuser
建库或表时一般需要预先检测是否已存在该对象
--表从该数据库的系统表sysobjects表中查询
Use stuInfo
go
select * from sysobjects where type = 'u'
--库从master系统库的sysdatabases表中查询
Use master
go
select * from sysdatabases
--表从该数据库的系统表sysobjects表中查询
Use stuInfo
go
select * from sysobjects where type = 'u'
--库从master系统库的sysdatabases表中查询
Use master
go
select * from sysdatabases
访问sql server的某个数据库中的某个表,需要三层验证:
是否是sql server 的登陆账号
是否是该数据库用户
是否有足够的权限访问该表
是否是sql server 的登陆账号
是否是该数据库用户
是否有足够的权限访问该表