Microsoft SQL Server 安全与权限
登陆角色
计算机操作系统用户
--创建Windows身份验证用户 USE [master] GO CREATE LOGIN [计算机名称\计算机用户名称] FROM WINDOWS WITH DEFAULT_DATABASE=[数据库名称], DEFAULT_LANGUAGE=[简体中文] GO --添加为db_owner成员 USE [数据库名称] GO EXEC sp_addrolemember 'db_owner',[计算机名称\计算机用户名称] GO
数据库系统用户
--创建数据库系统用户 CREATE LOGIN 数据库系统用户名 WITH PASSWORD = '密码',DEFAULT_DATABASE = master GO --添加为数据库访问成员 USE [数据库名称] GO CREATE USER 数据库系统用户名 FOR LOGIN 数据库系统用户名 GO
服务器系统角色
--系统存储过程sp_addsrvrolemember可将一登录账号添加到某一固定服务器角色中,使其成为固定服务器角色成员。 EXEC sp_addsrvrolemember '用户名','角色' GO --系统存储过程sp_dropsrvrolemember可从固定服务器角色中删除SQL Server 登录账号或Windows NT用户或组。 EXEC sp_dropsrvrolemember '用户名','角色' GO
数据库系统角色
--使用系统存储过程查看数据库角色 EXEC SP_HELPdbfixedrole GO
赋予用户表权限
--授予用户对表进行查询插入修改删除及再授权给其它用户; GRANT SELECT,INSERT,UPDATE,DELETE ON [dbo].[表名] TO 用户名 WITH GRANT OPTION
赋予用户存储过程权限
--授予用户对存储过程的权限 GRANT EXECUTE ON 存储过程名 TO 用户名;
禁止用户对表的权限
--禁止用户对表进行查询插入修改删除 DENY SELECT,INSERT,UPDATE,DELETE ON [dbo].[表名] TO 用户名 CASCADE;
收回用户表权限
--撤销用户对表进行查询插入修改删除权限; REVOKE SELECT,INSERT,UPDATE,DELETE ON [dbo].[T_Financial_Accounts] FROM aa CASCADE;
若一个小组共5个成员,他们对学生课程数据库具有相同的操作权限,具体权限如下:
1) 对于student、course表只能进行数据查询;
2) 只能对student表中sname进行更改;
3) 对于sc表只能进行修改、删除或插入;
如何设置这个小组,并赋予他们权限
Use 学生课程数据库
create role xiaozu
1)grant select,
on table dbo.student,dbo.course
to xiaozu
2) grant update(sname),
on table dbo.student
to xiaozu
3) grant update,delete,insert
on table dbo.sc
to xiaozu
exec sp_addrolemember 'xiaozu', 'stu1'
exec sp_addrolemember 'xiaozu', 'stu2'
exec sp_addrolemember 'xiaozu', 'stu3'
exec sp_addrolemember 'xiaozu', 'stu4'
exec sp_addrolemember 'xiaozu', 'stu5'
10. 将登录帐号zhang、stu1、stu2和stu3加入到服务器角色sysadmin中;考虑并回答,它们将有哪些变化?
EXEC sp_addsrvrolemember ' zhang ', 'sysadmin'
EXEC sp_addsrvrolemember ' stu1 ', 'sysadmin'
EXEC sp_addsrvrolemember ' stu2', 'sysadmin'
EXEC sp_addsrvrolemember ' stu3 ', 'sysadmin'
11. 将登录帐号cheng同时拥有服务器角色serveradmin 和 securityadmin的权限;
EXEC sp_addsrvrolemember ' cheng ', 'serveradmin'
EXEC sp_addsrvrolemember 'cheng ', 'securityadmin'
12. 删除服务器角色sysadmin的成员stu2和stu3;
EXEC sp_dropsrvrolemember 'stu1', 'sysadmin'
EXEC sp_dropsrvrolemember 'stu2', 'sysadmin'
SSMS修改SA密码
alter login sa with password = 'zl123456' go
CMD命令修改sa密码
1.列出SQL SERVER服务器
osql -L
2.命令行操作数据库
OSQL -S SQL服务器名称 -E
1> sp_password NULL,1234,'sa'
2> go
SQLCMD修改SA密码及登录
sqlcmd -U sa -P oldpassword -Z newpassword
SQLCMD -S ipaddress -U sa -P password -d databasename