SQL server登录账号与用户

您所在的位置:网站首页 腾讯云登录账号 SQL server登录账号与用户

SQL server登录账号与用户

2024-07-13 15:41| 来源: 网络整理| 查看: 265

简介

在创建SQL server用户时会发现创建了两个账号。这里会涉及两个概念----登录名账号和数据库用户。 本人不详细解读(我也不熟),只是在工作中遇到,简单了解。若想深度学习请阅读网上大神们写的专业且深度的文章。

登录名

在创建用户(口头概念,非数据库用户)时,第一步是创建登录名账号,且会设置其密码。在使用代码连接数据库时,或者相关工具连接数据库(如navicat)时,用到的用户名和密码就是这个。所以登录名账号是用来连接SQL server数据库引擎的。比如默认且最高权限的登录名账号----sa。

数据库用户

第二步则是创建一个数据库用户,且不用设置密码,且会绑定到登录名账号。数据库用户顾名思义是管理数据库的,可以为这个角色分配数据库权限乃至细致到表的增删改查权限。 一个数据库用户只能绑定一个登录名账号。所以登录名账号是通过数据库用户来操作数据库的,对此数据库的权限也要看绑定的数据库用户。 每个数据库的用户并不相通,但是可以每个数据库创建相同名称的用户名。

概念总结登录名账号是用来连接数据库的。数据库用户是用来管理数据库的(即权限分配)。一个数据库用户只能绑定一个登录名账号。sql语句登录名语句创建代码语言:javascript复制CREATE LOGIN [login_name] WITH PASSWORD = 'password';删除代码语言:javascript复制DROP LOGIN [login_name];数据库用户语句创建代码语言:javascript复制USE [database_name] CREATE USER [user_name] FOR LOGIN [login_name];删除代码语言:javascript复制USE [database_name] DROP USER [user_name];授权限语句授予数据库角色代码语言:javascript复制USE [database_name] ALTER ROLE [role_name] ADD MEMBER [user_name];

其中,[database_name]是数据库名称,[role_name]是数据库角色的名称,[user_name]是要授权的数据库用户名。

授予对象权限代码语言:javascript复制USE [database_name] GRANT [permission_type] ON [object_name] TO [user_name];

其中,[database_name]是数据库名称,[permission_type]是权限类型(如SELECT、INSERT、UPDATE、DELETE等),[object_name]是要授权的对象名(如表、视图、存储过程等),[user_name]是要授权的数据库用户名。

授予特定权限代码语言:javascript复制USE [database_name] GRANT [permission] TO [user_name];

其中,[database_name]是数据库名称,[permission]是特定权限(如EXECUTE、ALTER、REFERENCES等),[user_name]是要授权的数据库用户名。 请注意,授权操作需要具有足够的权限。通常,只有拥有db_owner或db_securityadmin角色的用户才能执行这些操作。此外,授权也可以通过授予数据库级别或对象级别的角色来完成,具体情况可以根据实际需要进行调整。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3