创建用户前需要有一个数据库,创建数据库命令如下:
CREATE DATABASE [数据库名称];
CREATE DATABASE database1;
一、创建登录用户
方式1:SQL命令
命令格式:CREATE LOGIN [用户名] WITH PASSWORD = '密码';
例如,创建登录用户名sa1,密码123456 的用户,命令如下:
CREATE LOGIN [sa1] WITH PASSWORD = '123456'
方式2:使用SSMS创建
选择管理员账户--【安全性】--【登录名】--右键--【新建登录名】
二、数据库中创建用户
方式1:SQL命令
命令格式:USE [数据库名称];
CREATE USER [用户名] FOR LOGIN [用户名];
例如,在数据库BLSH中创建用户sa1,命令如下:
USE BLSH
CREATE USER sa1
方式2:使用SSMS创建
选择要创建用户的数据库--【安全性】--【用户】--右键--【新建用户】
例如,在数据库test中创建用户sa1,操作如下:
三、给用户授权
方式1:SQL命令
使用 GRANT 命令来授予相应的权限,使用REVOKE命令来撤销相应的权限
授权对表的 SELECT, INSERT, UPDATE 和 DELETE 权限格式:
USE [数据库名称];
GRANT [权限] ON [表名] TO [用户名];
-- 授权对表的 SELECT, INSERT, UPDATE 和 DELETE 权限
GRANT SELECT, INSERT, UPDATE, DELETE ON dt_users TO sa1;
-- 对存储过程授予执行权限
GRANT EXECUTE ON YourStoredProcedure TO sa1;
-- 撤销对表的 SELECT, INSERT, UPDATE 和 DELETE 权限
REVOKE SELECT, INSERT, UPDATE, DELETE ON dt_users FROM sa1;
-- 撤销对存储过程的执行权限
REVOKE EXECUTE ON YourStoredProcedure FROM sa1;
-- 撤销创建表的权限
REVOKE CREATE TABLE FROM sa1;
-- 撤销创建视图的权限
REVOKE CREATE VIEW FROM sa1;
-- 撤销连接数据库的权限
REVOKE CONNECT FROM sa1;
-- 查询用户当前权限
SELECT * FROM sys.database_permissions WHERE grantee_principal_id = USER_ID('sa1');
方式2:使用SSMS创建
* 对整个数据库授权
选择管理员用户--【安全性】--【登录名】--在要授权的登录名上右键--【属性】
例如,给sa1账户授予test数据库所有用户表的查询权限,操作如下:
注:public为可以连接该数据库,db_datareader为可以读取该数据库的数据,其他数据库角色含义请点击查看数据库角色含义
* 对数据库表单独授权
选择要授权的数据库--【安全性】--【用户】--在要授权的用户上右键--【属性】
例如,给sa1_1用户授予test数据库CRM_Shops表的查询权限,操作如下:
查询表时出现以下提示表示没有查询权限:
操作数据库时出现以下提示表示没有给该用户开通此数据库的任何权限: