1. 首先在 SQL Server 服务器级别,创建登陆帐户(create login)

--创建登陆帐户(create login)

create login dba with password='abcd1234@', default_database=mydb

登陆帐户名为:“dba”,登陆密码:abcd1234@”,默认连接到的数据库:“mydb”。 这时候,dba 帐户就可以连接到 SQL Server 服务器上了。但是此时还不能 访问数据库中的对象(严格的说,此时 dba 帐户默认是 guest 数据库用户身份, 可以访问 guest 能够访问的数据库对象)。

要使 dba 帐户能够在 mydb 数据库中访问自己需要的对象, 需要在数据库 mydb 中建立一个“数据库用户”,赋予这个“数据库用户” 某些访问权限,并且把登陆帐户“dba” 和这个“数据库用户” 映射起来。 习惯上,“数据库用户” 的名字和 “登陆帐户”的名字相同,即:“dba”。 创建“数据库用户”和建立映射关系只需要一步即可完成:

2. 创建数据库用户(create user):

--为登陆账户创建数据库用户(create user),在mydb数据库中的security中的user下可以找到新创建的dba

create user dba for login dba with default_schema=dbo

并指定数据库用户“dba” 的默认 schema 是“dbo”。这意味着 用户“dba” 在执行“select * from t”,实际上执行的是 “select * from dbo.t”。

3. 通过加入数据库角色,赋予数据库用户“dba”权限:

--通过加入数据库角色,赋予数据库用户“db_owner”权限

exec sp_addrolemember 'db_owner', 'dba'

此时,dba 就可以全权管理数据库 mydb 中的对象了。

如果想让 SQL Server 登陆帐户“dba”访问多个数据库,比如 mydb2。 可以让 sa 执行下面的语句:

--让 SQL Server 登陆帐户“dba”访问多个数据库

use mydb2
go create user dba for login dba with default_schema=dbo
go exec sp_addrolemember 'db_owner', 'dba' go

此时,dba 就可以有两个数据库 mydb, mydb2 的管理权限了!
完整的代码示例

--创建数据库mydb和mydb2--在mydb和mydb2中创建测试表,默认是dbo这个schemaCREATE TABLE DEPT(DEPTNO int primary key,DNAME VARCHAR(14),LOC VARCHAR(13) );--插入数据INSERT INTO DEPT VALUES (101, 'ACCOUNTING', 'NEW YORK');
INSERT INTO DEPT VALUES (201, 'RESEARCH',   'DALLAS');
INSERT INTO DEPT VALUES (301, 'SALES',      'CHICAGO');
INSERT INTO DEPT VALUES (401, 'OPERATIONS', 'BOSTON');--查看数据库schema, user 的存储过程select * from sys.database_principals
select * from sys.schemas
select * from sys.server_principals--创建登陆帐户(create login)create login dba with password='abcd1234@', default_database=mydb--为登陆账户创建数据库用户(create user),在mydb数据库中的security中的user下可以找到新创建的dbacreate user dba for login dba with default_schema=dbo--通过加入数据库角色,赋予数据库用户“db_owner”权限exec sp_addrolemember 'db_owner', 'dba'--让 SQL Server 登陆帐户“dba”访问多个数据库use mydb2
go create user dba for login dba with default_schema=dbo
go exec sp_addrolemember 'db_owner', 'dba'go--禁用登陆帐户alter login dba disable
--启用登陆帐户alter login dba enable
--登陆帐户改名alter login dba with name=dba_tom
--登陆帐户改密码: alter login dba with password='aabb@ccdd'--数据库用户改名: alter user dba with name=dba_tom
--更改数据库用户 defult_schema: alter user dba with default_schema=sales
--删除数据库用户: drop user dba
--删除 SQL Server登陆帐户: drop login dba

转载于:https://www.cnblogs.com/yunspider/p/7719714.html

【转】在SQL Server中创建用户角色及授权(使用SQL语句)相关推荐

  1. 在SQL Server中创建用户角色及授权(使用SQL语句)

    1. 首先在 SQL Server 服务器级别,创建登陆帐户(create login) --创建登陆帐户(create login) create login dba with password=' ...

  2. 转 在SQL Server中创建用户角色及授权(使用SQL语句)

     目录 要想成功访问 SQL Server 数据库中的数据 我们需要两个方面的授权 完整的代码示例 使用存储过程来完成用户创建 实例 要想成功访问 SQL Server 数据库中的数据, 我们需要两个 ...

  3. 在SQL Server中创建用户角色及授权

    参考文献 http://database.51cto.com/art/201009/224075.htm 正文 要想成功访问 SQL Server 数据库中的数据, 我们需要两个方面的授权: 获得准许 ...

  4. SQL Server中出现用户或角色在当前数据库已经存在的问题的解决

    SQL Server中出现用户或角色在当前数据库已经存在的问题的解决 参考文章: (1)SQL Server中出现用户或角色在当前数据库已经存在的问题的解决 (2)https://www.cnblog ...

  5. SQL Server中通用数据库角色权限的处理详解

    SQL Server中通用数据库角色权限的处理详解 前言 安全性是所有数据库管理系统的一个重要特征.理解安全性问题是理解数据库管理系统安全性机制的前提. 最近和同事在做数据库权限清理的事情,主要是删除 ...

  6. 创建视图SQL:在SQL Server中创建视图

    介绍 (Introduction) In this article, we are going to see how to use the CREATE VIEW SQL statement to c ...

  7. sql server中创建链接服务器图解教程

    转自sql server中创建链接服务器图解教程 1.展开服务器对象-->链接服务器-->右击"新建链接服务器" 注意:必须以数据库管理员身份登录(通常也就是sa帐号) ...

  8. php里注册管理员账号,WordPress中创建用户角色的相关PHP函数使用详解

    这篇文章主要介绍了WordPress中创建用户角色的相关函数使用,在WordPress的多用户模式中不同角色拥有不同的权限,需要的朋友可以参考下 WordPress 默认有 "订阅者&quo ...

  9. sql server中创建数据库和表的语法

    下面是sql server中创建数据库,创建数据表以及添加约束的sql语句: use master --创建数据库 if exists (select * from sysdatabases wher ...

最新文章

  1. C++对象模型4——多重继承的对象内存模型、vptr与vtbl的创建与重置的时机、不要在含有虚函数的类的构造函数中调用memset
  2. python好学吗mooc中文网-Python的N种玩法_中国大学MOOC(慕课)
  3. dede调用sql语句的方法
  4. C和指针之函数之可变参数
  5. url 特殊字符 传递参数解决方法
  6. php ajax实现分页效果
  7. 发言稿开场白范文_万能演讲开场白范文
  8. python快速排序函数_两种方法在Python中实现快速排序
  9. 网页隐藏index.php,如何隐藏url中的index.php
  10. IE6 浏览器常见兼容问题 大汇总(23个)
  11. Dreamweaver CC 2019中文版
  12. 基于Java swing+mysql+eclipse的【图书管理系统】
  13. roundcube db.inc.php,Webmail Roundcube安装配置基础教程
  14. 数据、运营相关试题(二)【牛客网:京东2019春招产品运营类试卷】
  15. JS不跨域操控网易云音乐外链播放器
  16. 小叶入门之Python爬虫(一)
  17. 设计算机字长为8位 采用纯整数,计算机一级B笔试真题2011年03月
  18. 猿创征文 | DevOps运维的10个日常使用工具分享
  19. 图像处理------图像加噪
  20. 谈谈创业这点事(10)

热门文章

  1. php设置表单的字体,php表单标题怎么设置字体
  2. 的训练过程_最全深度学习训练过程可视化工具(附github源码)
  3. 三次握手和四次挥手图解_图解TCP三次握手和四次挥手
  4. datagrid只传入了一部分的数据 未显示全_软件开发面试之数据库事务篇
  5. java bootclasspath
  6. 极光尔沃切片软件_极光尔沃3D打印机走进肥东中小学校
  7. python网络爬虫文献综述_python网络爬虫综述
  8. Springboot 2.x上传文件大小限制
  9. 年轻人不讲武德,居然在简历中藏木马!
  10. 网易裁员事件,除了气愤,我们还该思考些什么?