sqlserver可以用grant procesure on schema ::xx to可以把某个schema下的存储过程的权限给某个用户吗
时间: 2024-02-25 11:53:28 浏览: 21
是的,您可以使用以下命令将某个schema下的存储过程权限授予给某个用户:
```
GRANT EXECUTE ON SCHEMA::[schema_name] TO [user_name];
```
其中,[schema_name]是您要授权的schema的名称,[user_name]是您要授权的用户的名称。
需要注意的是,这条命令将授予用户对该schema下所有存储过程的执行权限。如果您只想授权用户对某个具体的存储过程,可以使用类似以下的命令:
```
GRANT EXECUTE ON [schema_name].[procedure_name] TO [user_name];
```
其中,[procedure_name]是您要授权的存储过程的名称。
相关问题
如何在sql server中分配用户只允许建立某个表的权限,但不允许删改其他表?
在 SQL Server 中,我们可以使用 GRANT 和 DENY 语句来授予或拒绝用户对数据库对象的访问权限。
如果你想要分配用户只允许建立某个表的权限,但不允许删改其他表,可以按照以下步骤操作:
1. 首先,创建一个新的数据库角色,例如“TableCreator”,并授予该角色对该表的 SELECT、INSERT 和 CREATE TABLE 权限。
```
USE [database_name]
GO
CREATE ROLE [TableCreator]
GO
GRANT SELECT, INSERT, CREATE TABLE ON [schema_name].[table_name] TO [TableCreator]
GO
```
2. 将该角色分配给要分配权限的用户。
```
USE [database_name]
GO
EXEC sp_addrolemember 'TableCreator', 'username'
GO
```
3. 禁止该用户对其他表进行任何操作,可以使用 DENY 语句。
```
USE [database_name]
GO
DENY ALL ON [schema_name].[other_table_name] TO [username]
GO
```
这样,该用户只能访问指定的表,并且无法对其他表进行任何操作。
SQLServer create schema
可以使用以下语法在 SQL Server 中创建一个新的模式(Schema):
```
CREATE SCHEMA schema_name
AUTHORIZATION owner_name;
```
其中,`schema_name` 是要创建的模式的名称,`owner_name` 是模式的所有者的名称。
例如,要创建一个名为 `sales` 的模式并将其所有权授予用户名为 `john` 的用户,可以使用以下语法:
```
CREATE SCHEMA sales
AUTHORIZATION john;
```
需要注意的是,创建模式的用户必须具有 `CREATE SCHEMA` 权限。如果该用户没有该权限,可以使用 `GRANT CREATE SCHEMA` 命令授予该权限。