sql server的安全模型

创建登陆


添加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库中添加了两个用户
系统内置的数据库用户
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
建库或表时一般需要预先检测是否已存在该对象
--表从该数据库的系统表sysobjects表中查询
Use stuInfo
go
select * from sysobjects where type = 'u'  
-
-库从master系统库的sysdatabases表中查询
Use master
go
select * from sysdatabases
访问sql server的某个数据库中的某个表,需要三层验证:
  是否是sql server 的登陆账号
  是否是该数据库用户
  是否有足够的权限访问该表

你可能感兴趣的:(sql server的安全模型)