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

Microsoft SQL Server 安全与权限的更多相关文章

  1. SQL SERVER错误:已超过了锁请求超时时段。 (Microsoft SQL Server,错误: 1222)

    在SSMS(Microsoft SQL Server Management Studio)里面,查看数据库对应的表的时候,会遇到"Lock Request time out period e ...

  2. 无法打开物理文件xxx.mdf操作系统错误 5:“5(拒绝访问。)” (Microsoft SQL Server,错误: 5120)的解决方法

    无法打开物理文件xxx.mdf操作系统错误 5:“5(拒绝访问.)” (Microsoft SQL Server,错误: 5120)的解决方法   问题描述: 在附加数据库到sql server时,附 ...

  3. Microsoft SQL Server,附加数据库 错误:Error 916解决方法

    错误信息:错误提示:标题: Microsoft SQL Server Management Studio Express ——————————  无法为此请求检索数据. (Microsoft.SqlS ...

  4. 理解SQL Server中的权限体系(下)----安全对象和权限

    原文:http://www.cnblogs.com/CareySon/archive/2012/04/12/SQL-Security-SecurableAndPermission.html 在开始阅读 ...

  5. [原创]从Oracle和Microsoft Sql Server迁移到PostgreSQL Plus Advanced Server

    一.了解PPAS的迁移方式1.在线迁移和离线迁移使用Migration Studio或Migration Toolkit直接向PPAS数据库进行对象定义和数据表中数据的迁移称为在线迁移,生成要迁移对象 ...

  6. 使用 Oracle GoldenGate 在 Microsoft SQL Server 和 Oracle Database 之间复制事务

    使用 Oracle GoldenGate 在 Microsoft SQL Server 和 Oracle Database 之间复制事务 作者:Nikolay Manchev 分步构建一个跨这些平台的 ...

  7. Microsoft SQL Server Product Samples:Database

    从SQL Server 2005 之后示例数据都为AdventureWorks,需要的通过codeplex网站下载.这样设计的目的应该在于是生产库行不必要的用户以及权限分配. 从以下网址访问http: ...

  8. Microsoft SQL Server 管理 (常用管理及维护命令)

    --查询当前连接的实例名 select @@servername --察看任何数据库属性 sp_helpdb master --设置单用户模式,同时立即断开所有用户 alter database No ...

  9. Microsoft SQL Server 数据库 错误号大全

    panchzh :Microsoft SQL Server 数据库 错误号大全0 操作成功完成. 1 功能错误. 2 系统找不到指定的文件. 3 系统找不到指定的路径. 4 系统无法打开文件. 5 拒 ...

随机推荐

  1. chrome.socket

    chrome.socket https://chajian.baidu.com/developer/apps/socket.html#method-create 描述: 使用 chrome.socke ...

  2. Android MaoZhuaWeiBo开发Service抓取个人信息-2

    前面把基本的东西讲完了,之后就是数据的获取和解析显示出来了,那接下来我们就负责抓取数据的这块吧,首先我们须要 在清单文件中载入服务和活动 加入:. <activity android:name= ...

  3. Android 获取手机SIM卡运营商

    直接上代码: /** * 获取SIM卡运营商 * * @param context * @return */ public static String getOperators(Context con ...

  4. google免费DNSserver好用不?

    中国的网络实在不行,网速一直就是令人诟病. 比韩日那是差太多了,可是相比非洲还是不错.可是这根本无法满足国人的上网需求.于是大家都想破了脑袋想提高网速.这不方法来了么? 笔者在网上找了几种方法关于怎样 ...

  5. 2016/1/6 输出菱形 while语句计算阶乘分数之和

    public class LingXing { public static void main(String[] args) { //打印菱形 for (int x=1;x<6;x++){ fo ...

  6. Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '=

    [SQL]SELECT username,password,toutiao_uidFROM pwdtab pLEFT JOIN toutiao_action_article aON p.toutiao ...

  7. QVariant(相当于是Java里面的Object,是万能的容器,但要注册)

    这个类型相当于是Java里面的Object,它把绝大多数Qt提供的数据类型都封装起来,起到一个数据类型“擦除”的作用.比如我们的 table单元格可以是string,也可以是int,也可以是一个颜色值 ...

  8. Ubuntu 16.04下安装MacBuntu 16.04 TP 变身Mac OS X主题风格

    Ubuntu 16.04下安装MacBuntu 16.04 TP 变身Mac OS X主题风格 sudo add-apt-repository ppa:noobslab/macbuntu sudo a ...

  9. POJ 3294 UVA 11107 Life Forms 后缀数组

    相同的题目,输出格式有区别. 给定n个字符串,求最长的子串,使得它同时出现在一半以上的串中. 不熟悉后缀数组的童鞋建议先去看一看如何用后缀数组计算两个字符串的最长公共子串 Ural1517 这道题的思 ...

  10. AngularJS 指令(意义)

    angular.module('modulename') .directive('myDirective', function(){ return { restrict: 'EA', //E表示ele ...