Где я могу установить политику для своего хранилища таблиц Azure, чтобы пользователь мог читать, а администратор - для записи? - PullRequest
0 голосов
/ 11 ноября 2018

У меня есть таблица хранения Azure, которая называется ChatMessages. Пользователи читают данные из javascript, поэтому мне нужен только доступ для чтения для них. На стороне сервера я сохраняю данные (сообщения чата) в таблицу, поэтому хочу предоставить доступ на запись на стороне сервера.

Где мне установить доступ только для чтения на стороне клиента и как его использовать?

Вот мой код на стороне сервера и код JavaScript

            var chatMessages = ConfigurationManager.AppSettings["ChatMessages"];
            CloudStorageAccount storageAccount = CloudStorageAccount.Parse(chatMessages);

            // Create the table client.
            CloudTableClient tableClient = storageAccount.CreateCloudTableClient();

            // Create the CloudTable object that represents the "ChatMessages" table.
            CloudTable table = tableClient.GetTableReference("ChatMessages");

            // Create a ChatMessage entity.
            ChatMessage chatMessage;

            // create a new chat message entity here

            // Create the TableOperation object that inserts the ChatMessage entity.
            TableOperation insertOperation = TableOperation.Insert(chatMessage);

            // Execute the operation.
            table.Execute(insertOperation);

Вот мой код JavaScript, где каждому пользователю просто необходим доступ для чтения данных таблицы.

var tableUri = "https://myrggroupname.table.core.windows.net";
var tableService = AzureStorage.Table.createTableServiceWithSas(tableUri, sasToken);
var tableQuery = new AzureStorage.Table.TableQuery()
  .select(['ProfileIdA', 'ProfileIdB', 'DisplayTime', 'DateSent', 'Message'])
  .top(20)
  .where('PartitionKey eq ? or PartitionKey eq ?', partitionA, partitionB);

tableService.queryEntities('ChatMessages', tableQuery, null, function(error, result, response) {
  // do work here
});
...