SQL 数据库安全管理

  1. 添加/删除 SQL登录账户

    exec sp_addlogin '12123','QWQ12123'
    --			    '用户名' ,  '密码'
    create login qwq with password='QWQ12123'		--这种方式创建的用户名不能是纯数字
    --					   用户名      密码
    --删除SQL登陆账户
    exec sp_droplogin 12123
    
    drop login qwq
    
  2. 修改登录用户 用户名/密码

    alter login qwq with password='qwq12123'	--修改密码  加'  '
    alter login qwq with name=qaq		  --修改用户名  不加'   ' qaq_server
    
  3. 创建数据库用户

    use Sales
    go
    exec sp_grantdbaccess 'qaq' ,'qaquser'
    --					登录用户名 ,数据库用户名(可以与登录用户名一样)qaq_database
    --grant 授权  db 数据库   access  记录
    
    create user qaquser for login qaq
    --			数据库用户        登录用户
    
  4. 删除/修改 数据库用户

    --删除数据库用户
    exec sp_revokedbaccess 'qaquser'
    --		revoke  撤销
    drop user qaquser
    
    --修改数据库用户
    alter user qaquser with name=qaq_user
    
    
  5. 授予权限

    grant select on Employees to qaq_user
    --		查看         表          数据库用户
    
    grant exec on proc_销售额 to qaq_user
    --		执行     存储过程
    
    --更改连接后,验证对qaq登录用户的权限
    select * from Employees
    delete from Employees
    update Employees set 姓名='赵燕' where 编号='1001'
    
    declare @a int
    exec proc_销售额 '1301' ,@a output
    
    
  6. 撤销/禁用 权限

    --撤销权限(更改连接——连接到windows后才能更改)
    revoke select on Employees to qaq_user
    revoke exec on proc_销售额 to qaq_user
    --错误:无法对 sa、dbo、实体所有者、information_schema、sys 或您自己授予、拒绝或撤消权限。
    
    --禁用权限(有这个权限不让你用)
    deny select on Employees to qaq_user
    deny exec on proc_销售额 to qaq_user
    
    
    
  7. 数据库的备份和恢复

    --数据的导入和导出
    界面操作
    --数据备份和恢复
    --创建备份设备
    --devide 设备    第一个参数:设备类型  disk (硬盘),第二个参数: 逻辑文件名 Sales_bak  就表示sales库的备份	
    exec sp_addumpdevice 'disk','Sales_bak','D:\project\Sales_bak.bak'
    --											第三个参数:物理文件名(放在哪个文件夹),最后要加备份文件的文件属性:(.bak)
    --2、备份数据库
    backup database Sales to Sales_bak
    --备份   数据库    哪个库      库的逻辑文件名
    drop table Sell
    --恢复数据库
    restore database Sales from Sales_bak with replace				--恢复时不能在本库使用时恢复,建议在执行此操作时使用 master 数据库。
    --恢复   数据库     库  从     备份了的文件  以覆盖的方式
    
    
  8. 练习

    --1、在SQL Server服务器上创建两个登录账户:
    --班主任登录账户:banzhuren   密码:111111
    --教师登录账户:jiaoshi   密码:123456
    
    exec sp_addlogin 'banzhuren','111111' 
    
    create login jiaoshi with password='123456'
    
    --2、在Xk数据库中创建两个用户:
    --班主任用户:banzhurenuser 对应于登录账户banzhuren
    --教师用户:jiaoshiuser对应于登录账户jiaoshi
    use XK
    go
    
    exec sp_grantdbaccess 'banzhuren' , 'banzhurenuser'
    
    create user jiaoshiuser for login jiaoshi 
    
    --3、为用户授权:
    --班主任用户 banzhurenuser 对表student具有查询、增加、修改、删除权限;
    --教师用户 jiaoshiuser 对表student具有查询权限。
    --教师用户 jiaoshiuser 对存储过程proc_选课情况3的调用权限。
    grant select,insert,update,delete on Student to banzhurenuser
    
    grant select on Student to jiaoshiuser
    
    grant exec on proc_学生选课情况3 to jiaoshiuser
    
    --4、以班主任及教员账户登录,对班主任banzhurenuser及教员jiaoshiuser的权限进行验证,
    --将学号为‘00000001’的同学的姓名改为‘林一斌’。
    --试用学号’00000001’,’ 00000025’,’ 000000001’调用存储过程proc_选课情况3,验证教师对存储过程的调用权限。
    
    --更改连接为——banzhuren
    select * from Student
    update Student set StuName='林一斌' where StuNo='00000001'
    
    --更改连接为——jiaoshi
    --调用
    declare @sum int ,@a int
    exec @a=proc_学生选课情况3 '00000001',@sum output
    print '返回值:'+cast(@a as char(1))
    
    --调用
    declare @sum int,@a int
    exec @a=proc_学生选课情况3 '00000025',@sum output
    print '返回值:'+cast(@a as char(1))
    
    --调用
    declare @sum int,@a int
    exec @a=proc_学生选课情况3 '000000001',@sum output
    print '返回值:'+cast(@a as char(10))
    
    
    --5、将表student和视图v_选课详情中的信息导出到stuInfo.xls表中。
    界面操作
    
    --6、在D:\project文件夹中创建备份设备Xk_bak,对数据库XK进行完整备份,
    --然后删除stucou表,再对数据库Xk进行恢复,验证stucou表是否恢复。
    --(1)创建备份设备
    exec xp_cmdshell 'mkdir D:\project'  , no_output
    exec sp_addumpdevice 'disk','XK_bak','D:\project\XK_bak.bak'
    
    --(2)备份数据库
    backup database XK to XK_bak
    
    --(3)删除StuCou表
    drop table StuCou
    
    --切换到master数据库  进行恢复
    restore database XK from XK_bak with replace
    
    --测试是否恢复
    select * from StuCou
    
    

你可能感兴趣的:(数据库)