SQL Server的权限模型

  创建登录名

USE [master]
GO
/* For security reasons the login is created disabled and with a random password. */
/****** Object:  Login [lee]    Script Date: 2020/1/1 21:43:33 ******/
CREATE LOGIN login1 WITH 
PASSWORD=N'login1',--密码
DEFAULT_DATABASE=[TestDb],--默认登录数据库 
DEFAULT_LANGUAGE=[简体中文],
CHECK_POLICY=ON
GO

此时如果直接用此登录名登录,则会报错;原因是没有与数据库【TestDb】中的任何用户建立映射关系。

USE [TestDb]
GO

/****** Object:  User [User1]    Script Date: 2020/1/1 21:58:13 ******/
CREATE USER [User1] FOR LOGIN [login1] --与登录名建立映射关系
WITH DEFAULT_SCHEMA=[schema1]--设置用户的Schema
GO

再次登录则可以登录成功TestDb,此时没有任何权限,什么也看不到。

 执行以下代码进行授权

USE [TestDb]
GO
--创建schema,将其所有者设置为用户user1
CREATE SCHEMA [schema1] AUTHORIZATION user1
--创建角色
CREATE ROLE [role1]
--设置角色权限
grant create table,create procedure,create view to [role1] 
--将用户User1添加到role1角色中 
 exec sp_addrolemember 'role1','User1 ' 

猜你喜欢

转载自www.cnblogs.com/zlgan/p/12130836.html