插件窝 干货文章 SQLSERVER2022创建用户的图文教程

SQLSERVER2022创建用户的图文教程

权限 uploads picture 数据库 598    来源:    2024-10-28

一、通过Microsoft SQL Server Management Studio 进入SQL Server,并通过默认的Windows身份验证进入数据库服务器

二、点击数据库,再右键,选择新建数据库,输入数据库名称

三、在数据库里建个表,选择表,右键,新建-表

四、简单随便弄个2列,弄完ctrl s保存表格,测试的数据库弄完。

五、选择安全性-登录名-新建登录名,输入登录名,建议跟Windows本机用户名不一样,以作区分;选择SQL Server身份验证,勾选强制实施密码策略,把强制密码过期和用户在下次登录时必须更改密码取消,默认数据库选择我们刚刚创建的数据库

六、服务器角色页选择public和sysadmin

七、用户映射,确认数据库是否已映射,默认架构是dbo,为了后续学习方便,可以把数据库角色成员身份全选上【实验环境可以这么操作】

八、确认状态是否跟下图一致,一般默认的是不变,搞完点确定,至此,用户侧设置搞定

九、开搞数据库服务器侧,右键本地数据库,选择属性

十、点安全性-服务器身份验证,选择第二个,这一步很重要,很多人只做了前面,没有设置这个,导致自己创建的用户登不上。登不上的报错:sqlserver管道的另一端无任何进程

十一、关掉Microsoft SQL Server Management Studio,打开sql server configuration manager,选择SQL Server服务,右键重启。

十二、重新打开Microsoft SQL Server Management Studio,身份验证选择SQL Server身份验证,输入前面创建的用户名和密码,点一下刚刚创建的表格,右键-选择前1000行,OK,展示表格了。点设计也可以设计表格,权限验证通过

revoke 与 deny的区别

  • revoke:收回之前被授予的权限
  • deny:拒绝给当前数据库内的安全帐户授予权限并防止安全帐户通过其组或角色成员资格继承权限。

比如UserA所在的角色组有inset权限,但是我们Deny UserA使其没有insert权限,那么以后即使UserA再怎么到其他含有Insert的角色组中去,还是没有insert权限,除非该用户被显示授权。

简单来说,deny就是将来都不许给,revoke就是收回已经给予的。

实例

GRANT INSERT ON TableA TO RoleA      GO
EXEC sp_addrolemember RoleA, 'UserA'   GO 
-- 用户UserA将有TableA的INSERT权限
REVOKE INSERT ON TableA FROM RoleA   GO 
-- 用户UserA将没有TableA的INSERT权限,收回权限。  
GRANT INSERT ON TableA TORoleA  GO 
--重新给RoleA以TableA的INSERT权限
DENY INSERT ON TableA TO UserA 
-- 虽然用户UserA所在RoleA有TableA的INSERT权限,但UserA本身被DENY了,所以用户UserA将没有TableA的INSERT权限。
批量删除ms server数据表
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Create date: <2022.03.23>
-- Description:    <批量删除MsServer数据库中以F_开头的用户数据表>
-- =============================================
alter PROCEDURE BatchDeleteTable
AS
BEGIN
DECLARE @cul int 
declare @tablename varchar(50)
declare @dropSql nvarchar(100)
select @cul=COUNT(name) from sysobjects where (left(name,2) = 'F_')  and type='U'
print @cul
 
while @cul>0
  begin
    select @tablename=tb1.name from (select name from sysobjects where (left(name,2) = 'F_')  and (type='U')) as tb1
    set @dropSql='drop table'+' '+@tablename;
    EXECUTE sp_executesql @dropSql 
    select @cul=COUNT(name) from sysobjects where (left(name,2) = 'F_') and type='U'
end
 
END
GO

到此这篇关于SQLSERVER2022创建用户的图文教程的文章就介绍到这了,更多相关SQL创建用户内容请搜索插件窝以前的文章或继续浏览下面的相关文章希望大家以后多多支持插件窝!