返回顶部
首页 > 资讯 > 精选 >SQLServer怎么实现只赋予创建表权限
  • 559
分享到

SQLServer怎么实现只赋予创建表权限

2023-06-30 01:06:08 559人浏览 薄情痞子
摘要

本文小编为大家详细介绍“sqlServer怎么实现只赋予创建表权限”,内容详细,步骤清晰,细节处理妥当,希望这篇“SQLServer怎么实现只赋予创建表权限”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。背景今天客

本文小编为大家详细介绍“sqlServer怎么实现只赋予创建表权限”,内容详细,步骤清晰,细节处理妥当,希望这篇“SQLServer怎么实现只赋予创建表权限”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

背景

今天客户问到一个问题。 我想新建一个账号给外部人员使用,但是我只想给他创建表的权限,这应该如何操作。开始可能认为这个问题很简单。

我新建一个登录账号A

USE [master]GoCREATE LOGIN [A] WITH PASSWord=N'123456', DEFAULT_DATABASE=[master], CHECK_EXPIRATioN=OFF, CHECK_POLICY=OFFGO

创建数据库级别的用户A

USE [security_test]GOCREATE USER [a] FOR LOGIN [a] WITH DEFAULT_SCHEMA=[dbo]GO

赋予创建表的权限

GRANT CREATE TABLE TO A;

SQLServer怎么实现只赋予创建表权限

然后给他赋予创建表的权限

现在试试建表

CREATE TABLE test (id int)

提示如下信息:

SQLServer怎么实现只赋予创建表权限

这是什么情况?

解决办法1

创建表,每个表都是需要一个所有者,就是架构名。 对于我们的创建表语句  CREATE TABLE test (id int)  它其实默认使用的是 dbo架构。

A用户有了创建表的权限,还需要有dbo 架构的修改权限。 于是我们需要:

GRANT ALTER ON SCHEMA::dbo TO A;GO

但此时我们会遇到另外一个问题,就是加上这个权限之后,A用户除了create table 之外还能做drop table ,alter table等操作。

所以我们需要创建一个DDL 触发器 ,来阻止其他的操作

CREATE TRIGGER db_trigger_BlockNonTableDDLON DATABASE FOR DDL_DATABASE_LEVEL_EVENTSAS BEGIN    IF IS_MEMBER('A') = 1   BEGIN        DECLARE @TriggerEventText nvarchar(max);      SET @TriggerEventText = EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]','nvarchar(max)')       IF NOT ((@TriggerEventText LIKE 'CREATE TABLE%'))      BEGIN         RaiSERROR (@TriggerEventText, 16, 1)         ROLLBACK TRANSACTION;       END   END; END; GO

解决办法2

如果,创建的表不需要使用默认的dbo架构 

那么可以给 给外部人员单独创建一个shchema 。给新建一个架构schema ,

create schema schema1 authorization dbogo

然后

grant create table to Agrant alter, insert on schema::schema1 to A

此时,A仍然可以创建表,和删除表,但是他直接创建和删除属于它的架构的表。这也起到了限定权限的问题。

读到这里,这篇“SQLServer怎么实现只赋予创建表权限”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: SQLServer怎么实现只赋予创建表权限

本文链接: https://lsjlt.com/news/326936.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • SQLServer怎么实现只赋予创建表权限
    本文小编为大家详细介绍“SQLServer怎么实现只赋予创建表权限”,内容详细,步骤清晰,细节处理妥当,希望这篇“SQLServer怎么实现只赋予创建表权限”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。背景今天客...
    99+
    2023-06-30
  • SQLServer只赋予创建表权限的全过程
    目录背景解决办法1解决办法2总结背景 今天客户问到一个问题。 我想新建一个账号给外部人员使用,但是我只想给他创建表的权限,这应该如何操作。开始可能认为这个问题很简单。 我新建一个登录...
    99+
    2024-04-02
  • ubuntu怎么创建用户并赋予权限
    要在Ubuntu上创建用户并赋予其权限,可以按照以下步骤操作:1. 以root用户身份登录到Ubuntu。2. 打开终端并运行以下命...
    99+
    2023-08-25
    ubuntu
  • mysql怎么创建账户并赋予权限
    要在MySQL中创建账户并赋予权限,可以按照以下步骤进行: 登录到MySQL数据库服务器上,可以使用以下命令登录: mysql ...
    99+
    2024-04-09
    mysql
  • oracle怎么创建新用户并赋予权限
    可以通过以下步骤在 oracle 中创建新用户并授予权限:1. 使用 create user 语句创建用户;2. 授予基本系统权限(connect 和 resource);3. 针对特定...
    99+
    2024-05-13
    oracle
  • linux创建用户并赋予root权限
    创建用户:useradd test 为用户设置密码:passwd test,需输入2次 将用户test归到root用户组:usermod -g root test 将root用户的文件夹读写权限授予test :chmod -R 775 /m...
    99+
    2023-09-02
    linux 运维 服务器
  • MySQL怎么给用户赋予创建视图的权限
    要给用户赋予创建视图的权限,首先需要确保你具有足够的权限来执行此操作。然后可以按照以下步骤进行操作:1. 使用管理员账户登录到MyS...
    99+
    2023-10-12
    MySQL
  • oracle怎么创建新用户并赋予权限密码
    本教程详细介绍了如何使用 oracle 创建一个新用户并授予其权限:创建新用户并设置密码。授予对特定表的读写权限。授予创建序列的权限。根据需要授予其他权限。 如何使用 Oracle 创...
    99+
    2024-05-14
    oracle
  • oracle怎么创建新用户并赋予权限设置
    答案:要创建 oracle 新用户,请执行以下步骤:以具有 create user 权限的用户身份登录;在 sql*plus 窗口中输入 create user identified ...
    99+
    2024-05-14
    oracle
  • oracle怎么赋予dba权限
    要赋予一个用户DBA权限,可以使用以下步骤: 首先,登录到Oracle数据库的管理员账号(通常是sys或system)。 使...
    99+
    2024-04-09
    oracle
  • Mysql用户创建以及权限赋予操作
    mysql创建用户, 并配置一个库的所有权限 在MySQL中,创建用户并为其授予某个库的所有权限,可以按照以下步骤操作:          1.登录MySQL服务器。 mysql -u root -p         2.创建新用户。 CR...
    99+
    2023-08-31
    mysql 数据库 服务器
  • oracle中如何创建用户并赋予权限
    在Oracle数据库中,创建用户并分配权限的步骤如下: 使用管理员权限登录数据库。 创建用户: CREATE USER ...
    99+
    2024-04-09
    oracle
  • SQLServer中如何创建用户并授予权限
    要在SQLServer中创建用户并授予权限,您可以按照以下步骤操作: 首先,使用管理员账户登录到SQLServer Manage...
    99+
    2024-04-09
    SQLServer
  • ubuntu怎么新建用户并赋予权限
    要在Ubuntu上创建新用户并赋予权限,可以按照以下步骤进行操作:1. 打开终端,以管理员权限登录。2. 使用以下命令创建新用户: ...
    99+
    2023-08-23
    ubuntu
  • oracle怎么新建用户并赋予权限
    要在Oracle数据库中新建用户并赋予相应的权限,可以按照以下步骤进行操作: 使用系统管理员账号(例如sys或system)登录...
    99+
    2024-04-09
    oracle
  • Oracle如何创建普通用户并赋予权限
    这篇文章给大家分享的是有关Oracle如何创建普通用户并赋予权限的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Oracle 创建普通用户,并赋予权限1) 采用sys or sys...
    99+
    2024-04-02
  • MySQL创建用户并赋予某个视图权限
    1、创建用户 create user '用户名'@'%' identified by '密码'; create user 'test'@'%' identified by '123'; 2、赋予视图权限 GRANT SELECT ,show...
    99+
    2023-09-30
    mysql 数据库
  • oracle怎么给用户赋予权限
    在Oracle数据库中,可以通过以下步骤给用户赋予特定权限: 登录Oracle数据库管理工具,如SQL*Plus或SQL Dev...
    99+
    2024-04-09
    oracle
  • mysql怎么给用户赋予权限
    要给MySQL用户赋予权限,可以使用GRANT语句。GRANT语句用于给用户授予特定权限,语法如下: GRANT privilege...
    99+
    2024-04-09
    mysql
  • Oracle创建用户,并赋于只读某几张表的权限
    #进入数据库 su - oracle sqlplus / as sysdba #创建只读用户 create user kms identified by "123@456"; grant connect t...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作